propertiest配置格式:
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
application-dev.properties:开发环境
application-test.properties:测试环境
application-pro.properties:生产环境
至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。
application.yml
# application.yml
spring:
profiles:
active: dev
application-dev.yml
# application-dev.yml
variable:
profiles : dev
application-pro.yml
# application-pro.yml
variable:
profiles : pro
application-test.yml
# application-test.yml
variable:
profiles : test
如:spring.profiles.active=dev就会加载application-dev.properties配置文件内容
下面,以不同环境配置不同的服务端口为例,进行样例实验。
针对各环境新建不同的配置文件application-dev.properties、application-test.properties、application-pro.properties
在这三个文件均都设置不同的server.port属性,如:dev环境设置为8001,test环境设置为8002,prod环境设置为8003
application.properties中设置spring.profiles.active=dev,就是说默认以dev环境设置
SpringBoot内嵌容器的部署方式:
SpringBoot内部默认提供内嵌的tomcat容器,所以可以直接打成jar包,丢到服务器上的任何一个目录,然后在当前目录下执行以下命令即可运行。
java -jar demo.jar
说明:若这种方式的运行退出进程就结束了;如果想在后台可以运行,则需要执行 java -jar demo.jar > log_demo.file 2>&1 & 即可在后台运行该服务了,log_demo.file是日志文件。如需停止该进程 执行ps -ef|grep java 找到对应的进程 kill 进程ID 即可。
java -jar demo.jar > log_demo.file 2>&1 &
测试不同配置的加载
执行 java -jar xxx.jar 可以观察到服务端口被设置为8001,也就是默认的开发环境(dev)
执行 java -jar xxx.jar --spring.profiles.active=test 可以观察到服务端口被设置为8002,也就是测试环境的配置(test)
执行 java -jar xxx.jar --spring.profiles.active=pro 可以观察到服务端口被设置为8003,也就是生产环境的配置(pro)
or
nohup java -jar -Dfile.encoding=UTF-8 XXX.jar --spring.profiles.active=test