SpringBoot配置文件外置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25113569/article/details/88170250
SpringBoot配置文件外置

背景及原因

现在越来越多的项目需要打包运行发布,尤其是SpringBoot项目。这个时候,如果配置文件一直放在项目中,每次修改配置文件都要重新打包,非常不方便,所以就需要将配置文件外置。

配置文件的访问顺序

SpringBoot会按照如下路径来加载application.properties

  • 包当前目录下的 /configs
  • 包当前目录
  • classpath下的 /config 目录
  • classpath根目录

因此,想要配置文件外置只要在包所在目录下新建 config 文件夹放入配置文件或者直接和包放在同一目录。

自定义配置文件

如果不想使用 application.properties 作为配置文件,或者配置文件不在上述目录,怎么办? 这时候我们完全可以自定义配置文件

运行时命令行指定

Windows

  1. 先将项目打成 jar 包 (具体操作见附)
  2. cmd 定位到 jar 包目录
    cmd 定位到 jar 包目录述
  3. 指定配置文件运行项目
    指定配置文件运行项目
  4. 项目启动成功
    项目启动成功

Linux

  1. 先将项目打成 jar 包 (具体操作见附)
  2. 指定配置文件启动 jar 包项目
    指定配置文件启动 jar 包项目
    3.项目启动成功
    项目启动成功1
    项目启动成功2

代码内指定

  1. 直接指定配置文件
@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 包配置文件,例如:
加载 jar 包配置文件

附:idea打 jar 包

网上很多博客上写的打jar包教程是错误的,在这里更正,下面是正确的操作方法
1.
1
2.
2

3.Main Class 是SpringBoot 的启动类,需要自行勾选。下面的 MANIFEST.MF 需要定位到 classpath:目录下,默认的位置是错误的。
3
4.include in project build 选项勾选上是在编译时会自动打 jar 包
4
5.点击 Build Aetifacts 后会出现二图,选择 Build 就会生成 jar 包
5.1
5.2
5.3
返回上文

猜你喜欢

转载自blog.csdn.net/qq_25113569/article/details/88170250