目录
指定环境
在项目根目录下的 config 文件夹下添加如下4个配置文件:
application.properties:主配置文件
application-dev.properties:开发环境配置文件
application-test.properties:测试环境配置文件
application-pro.properties:生产环境配置文件
在 application.properties 文件中,指定默认服务器端口号为 8060,并通过以下配置激活开发环境(dev)的 profile。
application.properties
server.port = 8060
spring.profiles.active = dev
HelloModel.userName = 刘亦菲
HelloModel.sex = 女
HelloModel.age = 20
application-dev.properties
server.port = 8070
服务启动后端口号为8070
虚拟机参数配置
注释掉application.properties内的spring.profiles.active = dev
在idea开发工具中打开RunDebug Configurations界面;然后在VM options-行中指定;
-Dspring.profiles.active=dev
服务启动后端口号为8070
命令行参数配置
打包
打开maven界面,选择package双击进行打包
打包产物在根目录/target目录下
运行
按照文章中的操作,运行jar包后,配置并没有生效。
使用下面的命令查询,config文件夹下的配置文件并没有被打包进jar包。
╰─ jar tf HelloSpring-0.0.1-SNAPSHOT.jar | grep application
BOOT-INF/classes/application.properties
遇见上面问题我们有两种解决方案。
方案一
将所有的配置文件放在这个目录下,重新打包运行,指定的配置就会生效
src/main/resources/
方案二
使用 Spring Boot 默认外部目录
Spring Boot 默认会找同级目录下的config目录
同级目录/
├── HelloSpring-0.0.1-SNAPSHOT.jar
└── config/application-dev.properties
将HelloSpring-0.0.1-SNAPSHOT.jar放在和config的同一个目录下然后运行
java -jar HelloSpring-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev
当然也可以指定目录
java -jar HelloSpring-0.0.1-SNAPSHOT.jar \
--spring.config.location=./xxx/
--spring.profiles.active=dev
行者常至,为者常成!