SpringBoot在BOOT中存储配置

时间:2018-05-10 00:48:08

标签: java spring-boot packaging

我有一个spring boot应用程序作为myapp,我有一些我需要外化的配置。它们最初位于main/resource/config

下的分发项目中

当我运行maven构建时,tar.gz有config文件夹和myapp.jar。 这个myapp.jar有一个BOOT文件夹,它也包含了jar外的config文件夹中的所有文件。现在当我改变配置文件夹的时候。 Springboot仍然从jar内的BOOT文件夹中读取配置文件。如何读取外部配置文件。

3 个答案:

答案 0 :(得分:0)

因为你的外部配置文件不在classpath中,所以springboot不会知道这些文件,它会从类路径中搜索文件。

这是externalized config的文件。如果使用外部配置,则需要在运行springboot时设置spring.config.location,如

java -Dspring.config.location=file:/gfs/config/post/post.properties,/gfs/config/post/post_pwd.properties,./config/db-config.properties,./config/db-passwd.properties -jar myapp-1.0-SNAPSHOT.jar

答案 1 :(得分:0)

sarmahdi - 你可以试试这个......

java -Dconfig_base_dir = / opt / tomcat / conf / bpm -jar myapp-1.0-SNAPSHOT.jar

@Configuration
    @PropertySources({
        @PropertySource("file:${config_base_dir}/app.properties"),
        @PropertySource("file:${config_base_dir}/dbconfig.properties")
 })
public class PostConfig {

更多样品...... Mkyong java

答案 2 :(得分:0)

在我的情况下,我只是在application.yaml中使用了file:config / myconfig.properties,所以不是在jar里查找文件夹配置然后在那里。如果我使用了classpath:/config/myconfig.properties那么它会在jar中捆绑什么