Spring Boot 2系列(十四):配置文件profile属性和部署jar包

  Spring Boot 创建时会生成默认的配置文件:application.properties,该文件中的配置优先级最高。
  
  ProfileSpring为不同的环境来激活相应的的配置文件提供支持, profile 全局配置:application-{profile}.properties

profile

Spring Boot项目实际开发中常会用以下三个配置文件:

  1. 开发环境:application-dev.properties
  2. 生产环境:application-prod.properties
  3. 测试环境:application-test.properties

然后在application.properties中设置spring.profiles.active=profile来指定活动的Profile
如:spring.profiles.active=dev

配置示例

src/main/resources里创建profile配置文件。

  1. 开发环境:application-dev.properties: server.port=81
  2. 生产环境:application-prod.properties:server.port=82
  3. 运行:application.properties: spring.profiles.active=dev
    这里就启用了开发模式下的配置,服务器端口为81

jar包部署

Spring Boot除了在配置文件中指定参数外,还可以在启动时指定参数。

  1. 简单运行:

    1
    java -jar my-springboot.jar
  2. 指定端口号:

    1
    java -jar my-springboot.jar --server.port=9090
  3. 指定激活的配置文件:application-prod.properties

1
java -jar my-springboot.jar --spring.profiles.active=prod
  1. Debug环境运行
1
java -jar my-springboot.jar --debug

外置配置文件

Spring Boot 加载 application.properties 配置文件优先级:

  1. Jar 包当前目录下的 /config 目录
  2. Jar 包当前目录
  3. classpath 下的 /config 包目录
  4. classpath 目录

加载外部配置文

1
2
3
java -jar springboot-v1.0.jar --spring.config.location = classpath:/default.properties,classpath:/override.properties

java -jar my-springboot.jar --Dspring.config.location=/config/application.yml

Linux 后台运行jar

如果在 Linux 服务器上只用 java -jar xxx.jar 来过运行应用,当SSH终端关闭,程序也会退出运行;实际部署应用到 Linux 会让程序在后台运行,方法如下:

1
2
3
4
5
6
7
8
9
10
11
$ nohup java -jar test.jar &
nohup:不挂断地运行命令;&:在后台运行,这两个命令大我一起使用。
默认情况下日志输出被重定向到**nohup.out**文件中。

$ nohu java -jar myapp.jar > myapp_log.txt &
输入信息重定向到文件,

$ jobs
列出所有在后台执行作业的应用,每个作业前有个编号。
$ fg 编号,如:fg 1
是将该编号的作用调回到前台控制,但关闭前台终端则应用退出

参考:
[1]Spring Boot加载配置文件
[2]Spring Boot配置文件放在jar外部

Spring Boot 2系列(十四):配置文件profile属性和部署jar包

http://blog.gxitsky.com/2018/06/10/SpringBoot-14-profile-jar-deploy/

作者

光星

发布于

2018-06-10

更新于

2022-06-17

许可协议

评论