Свойства приложения не загружены при использовании AnnotationConfigApplicationContextJAVA

Программисты JAVA общаются здесь
Anonymous
Свойства приложения не загружены при использовании AnnotationConfigApplicationContext

Сообщение Anonymous »

У меня есть приложение Spring Boot, которое работает нормально. Его точка входа: < /p>

Код: Выделить всё

@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);
}
}
myservicesconfiguration находится в верхней части иерархии пакета, поэтому @componentscan может найти все объекты @service и @component ниже:

@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
}
Существует файл Application.yml в верхней части папки ресурсов , как обычно в Spring . Когда я запускаю MyTeStApplication , это работает так, как задумано. Бобы инициализируются, а свойства заполнены. Для этого я использую AnnotationConfigApplicationContext , как ниже:

Код: Выделить всё

    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

Вернуться в «JAVA»