在不同项目中共享application.properties文件

时间:2019-11-01 04:04:01

标签: spring spring-boot spring-mvc

下面显示了项目结构

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/

棉班

@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 在春季启动时,我们还有更好的方法吗

1 个答案:

答案 0 :(得分:2)

当您准备开发分布式Web系统时,最佳实践是使用由不同服务使用的外部化配置,从而使您无需重新部署即可更新设置。看看Spring Cloud Config