Sprinp Boot配置文件外置

本文最后更新于:2018年12月28日 下午

前言

之前 Spring Boot 开发的时候,打包部署会联通 properties 文件一同打包,虽然这样的好处是生成了一个 jar,直接一把梭 nohup java -jar 就启动了,但是也有很麻烦的地方,例如需要修改配置文件的时候,就要重新打包。于是学习了 Spring Boot 将配置文件外置的方法

Spring Boot 配置文件加载优先级

按照规定,Spring Boot 的配置文件加载优先级如下:

  • 当前目录下的config子目录
  • 当前目录
  • classpath下的config目录
  • classpath根路径

优先级自上而下递减 !

修改 pom.xml

因为我们需要使用外置的配置文件,所以先要让 maven 忽略 resource 里面的配置文件,在打包的时候略过他们,方法如下:在 pom.xml 当中添加以下代码

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <excludes>
                <exclude>**/*.properties</exclude>
                <exclude>**/*.yml</exclude>
                <exclude>**/*.xml</exclude>
            </excludes>
        </resource>
    </resources>
</build>

转移配置

  • 在项目根目录下面创建 config 文件夹
    • 之所以使用 config 文件夹是考虑到这样的话工程目录更加清晰
  • 复制 resource 文件夹当中的配置文件到 config 文件夹里面

修改代码(可能不需要)

如果代码当中有些并不是使用自动注入读取的配置的话,要修改获取方式,从前我们使用

Resource resource = new ClassPathResource("/application.properties");

现在变成

Resource resource = new FileSystemResource("config/application.properties");

最后,重新打包项目就可以了~