Ниже показана структура проекта
Core Project
|-config project
|
|-Service project
После сборки основного проекта мы получаем файл Service.jar.
При запуске service.jar я передаю spring.config.additional.location
в качестве аргумента командной строки.
java -jar Service-1.0.jar --spring.config.additional-location=C:/Users/Administrator/Desktop/Springboot/
выше spring.config.additional.location
пути с файлом application.property и некоторыми XML-файлами. Я могу прочитать файл свойств приложения в сервисном проекте, следуя логике
Application.propertes
external.config=C:/Users/Administrator/Desktop/Springboot/config/
Mian Class
@ImportResource(locations = {
"${external.config}"+"/spring/service-config.xml",
"${external.config}"+"/spring/datasource-config.xml"
})
public class ServiceMain {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = new SpringApplicationBuilder(ServiceMain.class)
.build()
.run(args);
for (String name : applicationContext.getBeanDefinitionNames()) {
}
}
}
Подобная логика применяется в конфигурацииПроект приведен ниже, он не работает
@Configuration
public class ConfigurationFactory
{
@Value("${external.config}")
public String extConfPath;
public String REQ_CONF = extConfPath+"/Configuration.xml";
public static final String FILTER_XML_CONF = extConfPath+"/DocFilter.xml";
}
Есть ли лучший способ сделать это? Как я могу прочитать внешние application.properties в конфигурационном проекте? Есть ли у нас лучший способ сделать это при весенней загрузке