版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25113569/article/details/88170250
背景及原因
现在越来越多的项目需要打包运行发布,尤其是SpringBoot项目。这个时候,如果配置文件一直放在项目中,每次修改配置文件都要重新打包,非常不方便,所以就需要将配置文件外置。
配置文件的访问顺序
SpringBoot会按照如下路径来加载application.properties
- 包当前目录下的 /configs
- 包当前目录
- classpath下的 /config 目录
- classpath根目录
因此,想要配置文件外置只要在包所在目录下新建 config 文件夹放入配置文件或者直接和包放在同一目录。
自定义配置文件
如果不想使用 application.properties 作为配置文件,或者配置文件不在上述目录,怎么办? 这时候我们完全可以自定义配置文件
运行时命令行指定
Windows
- 先将项目打成 jar 包 (具体操作见附)
- cmd 定位到 jar 包目录
- 指定配置文件运行项目
- 项目启动成功
Linux
- 先将项目打成 jar 包 (具体操作见附)
- 指定配置文件启动 jar 包项目
3.项目启动成功
代码内指定
- 直接指定配置文件
@SpringBootApplication
@MapperScan("com.example.demo.dao")
@PropertySource(value={"file:config.properties"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
2.按顺序读取配置文件。如下,如果 classpath:目录下配置文件不存在,则读取项目同级目录下的 config 目录下的配置文件
@SpringBootApplication
@MapperScan("com.example.demo.dao")
@PropertySource(value = { "classpath:application.properties", "file:./config/application.properties" }, ignoreResourceNotFound = true)
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
配置文件格式
上述两种加载外部配置文件的方式除了直接加载 .properties 配置文件,也可以加载 jar 包配置文件,例如:
附:idea打 jar 包
网上很多博客上写的打jar包教程是错误的,在这里更正,下面是正确的操作方法
1.
2.
3.Main Class 是SpringBoot 的启动类,需要自行勾选。下面的 MANIFEST.MF 需要定位到 classpath:目录下,默认的位置是错误的。
4.include in project build 选项勾选上是在编译时会自动打 jar 包
5.点击 Build Aetifacts 后会出现二图,选择 Build 就会生成 jar 包
返回上文