[TOC]

Springboot读取项目启动配置文件的4种方式(提高部署效率)

1. 通过命令行指定

SpringApplication会默认将命令行参数转换为配置信息

例如:(命令行启动时指定端口参数)

1
java -jar xxxx.jar --server.port = 9090

==从命令行启动指定参数优先级最高==,不过可以通过SpringApplication.setAddCommandLineProperties(false)来禁用该方式

2. 外置配置文件(大幅提高部署效率)

Spring会按照以下顺序读取配置文件,从上至下优先级依次降低

  • 当前jar包目录的 /config
  • 当前jar包目录的配置文件
  • classpath下的/config
  • classpath下的配置文件

提高部署效率的小窍门

在服务器下jar包外新建一个config目录,将配置文件写入,这样可以忽略jar包内部的配置文件固定使用jar包外的config路径下的配置文件

3. 自定义配置文件

如果不使用第二种方式的配置文件读取,也可以自定义配置文件路径,方式如下

1
java -jar xxx.jar --spring.config.location=classpath:/xxx.properties,classpath:/xxx.properties

或者

1
java -jar -Dspring.config.location=D:\config\xxx.properties xxx.jar

或者

(不推荐,存在硬编码问题)

1
2
3
4
5
6
7
8
9
@SpringBootApplication
@PropertySource(value={"file:config.properties"})
public class SpringbootrestdemoApplication {

public static void main(String[] args) {
SpringApplication.run(SpringbootrestdemoApplication.class, args);
}

}

4. 按profile环境读取

先编写多个环境的配置文件

例如:(开发环境和部署环境)

  • dev环境的配置文件:application-dev.properties
  • prod生产环境配置文件: application-prod.properties

在启动项目时配置需要使用的环境

1
java -jar xxx.jar --spring.profiles.active = dev
坚持学习发博,请支持我的原创!