У меня есть 2 модуля в моем проекте приложения и стартера. Стартер содержит @Configuration
и сообщает, как должен быть создан компонент ServiceFoo
.
@Configuration
@EnableConfigurationProperties(FooServiceConfiguration.class)
public class StarterFoo {
@Bean
public ServiceFoo defaultBean(FooServiceConfiguration conf){
new ServiceFooImpl(conf.getName(), conf.getNumber());
}
}
У меня есть другой класс конфигурации в моем стартере.
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("Foo")
public class FooServiceConfiguration {
private String name;
private int number;
// + accessors
}
в моем стартере у меня есть application.yml
, который имеет
Foo:
name: DefaultName
number: 101
стартер настроен для автоматической настройки
META-INF / spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=StarterFoo
Я хочу узнать мнение о моей конфигурации относительно номера, и пользователь никогда не будет беспокоиться и переопределит этот номер. Я хочу, чтобы пользователи переопределяли имя в моей конфигурации.
Как только я создаю application.yml в приложении (пустой файл), эффект конфигурации стартера (из application.yml из стартера) исчезает.
Как я могу частично переопределить этот конфиг из приложения, которое определено в стартере?