如何在Spring Boot linux中为classpath提供外部配置资源(数据库属性和XML文件)

时间:2019-06-27 02:48:00

标签: java spring spring-boot

在春季启动中,我一直面临外部配置文件到类路径的问题,但是它没有从外部配置文件夹中选择 application.properties和application-dev属性。它从外部config文件夹中选择数据库属性和XML文件。我尝试了以下方法,请您帮我解决这个问题。

  

java -cp ./config/;./lib/ips--0.0.1-SNAPSHOT.jar   java -cp ./config/;./lib/ips-rest-0.0.1-SNAPSHOT.jar   java -jar ./lib/ips-rest-0.0.1-SNAPSHOT.jar --spring.config.location = classpath:/ config /,file:./ config /,classpath:/,file:./

@ImportResource("classpath:ips-spring.xml")
@SpringBootApplication(exclude = { KafkaAutoConfiguration.class })
@ComponentScan(value = "com.mark", useDefaultFilters = false)
@EnableAutoConfiguration
@EnableConfigurationProperties
public class ApplicationRest {
    public static void main(String[] args) {
        System.setProperty("spring.devtools.restart.enabled", "false");
        SpringApplication.run(ApplicationRest.class, args);
        System.out.println("Started ApplicationRest");
    }
}

<context:property-placeholder location="classpath:env.properties,classpath:db.properties" ignore-resource-not-found="false" ignore-unresolvable="false" />
<import resource="classpath:app-entity.xml" />

1 个答案:

答案 0 :(得分:1)

我假设“外部配置”是指未打包到spring boot构件(示例中为jar)中的配置文件(*.properties*.yml等)

在这种情况下,根据定义,它们不在应用程序的classpath中。

因此,要解释一下,您在问如何向spring应用程序提供外部配置文件。正如您已经发现的,--spring.config.location确实是可行的方法:

--spring.config.location=file:/work/config1.yml,file:/work/config2.yml