Код: Выделить всё
@SpringBootApplication(scanBasePackageClasses = {MyServicesConfiguration.class})
public class MyTestApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(MyTestApplication.class)
.web(WebApplicationType.NONE)
.initializers(new ImportantContextInitializer())
.run(args);
}
}
@Configuration
@ComponentScan
@EnableConfigurationProperties
public class MyServicesConfiguration {
@Bean
public ImportantBean getImportantBean(MyConfiguration configuration) {
return new ImportantBean(configuration);
}
< /code>
Наконец, класс свойств конфигурации: < /p>
Код: Выделить всё
@Component
@ConfigurationProperties(prefix = "my.configuration")
public class MvConfiguration {
private Integer aNumber;
private String aString;
// Public setters and getters are here
}
Код: Выделить всё
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext();
// ctx.register(MyServicesConfiguration.class); // Also tried this
ctx.register(MyTestApplication.class);
ctx.refresh();
- Выполнение ctx.refresh в конечном итоге не удается, потому что, потому что фасоли, такие как MyConfiguration , созданы созданы, но их свойства не установлены - важные результаты Получают конфигурацию , но все Properties of Properties - это конфигурация> конфигурация>, но все это производители - это конфигурация>, но все это. null.
- Мне также интересно, как сделать AnnotationConfigApplicationContext Знать о контекстных инициализаторах, таких как WaterContextInitializer .
Подробнее здесь: https://stackoverflow.com/questions/796 ... ioncontext