我们在开发中和上线后的一些配置参数不通,如:数据库连接、短信验证等
springboot为我们提供了区分环境配置的方法
同一个配置文件不同环境配置
同一个配置文件
application.yml
中可以使用
---
3个杠来区分环境
server:
port: 8080
spring:
profiles:
active: dev #默认启动的环境
# 开发环境配置
---
spring:
profiles: dev
myconf:
user:
name: 开发-哈哈
# 生产环境配置
---
spring:
profiles: prod
myconf:
user:
name: 生产-嘿嘿嘿
启动类:
@SpringBootApplication
@RestController
public class ProfileApp {
@Value("${myconf.user.name}")
private String userName;
public static void main(String[] args) {
SpringApplication.run(ProfileApp.class, args);
}
@GetMapping("/name")
public String getUserName(){
return userName;
}
}
启动项目后,查看日志:
2018-11-23 16:59:53.131 INFO 90732 --- [ restartedMain] com.yimingkeji.profile.ProfileApp : The following profiles are active: dev #当前的profile是dev
访问 http://localhost:8080/name
开发-哈哈
如果修改启动环境为 prod
spring:
profiles:
active: prod
启动后再次访问 http://localhost:8080/name
生产-嘿嘿嘿
不同配置文件不同环境
还可以添加配置文件,以
application-环境
来命名,如
application.yml #默认配置
application-dev.yml # 开发环境配置
application-prod.yml # 生产环境配置
application.yml
server:
port: 8080
spring:
profiles:
active: dev #默认启动的环境
application-dev.yml
myconf:
user:
address: 杭州市西湖区
application-prod.yml
myconf:
user:
address: 北京北京
接口:
@Value("${myconf.user.address}")
private String address;
@GetMapping("/address")
public String getAddress(){
return address;
}
先设置启动环境为dev,启动后访问 http://localhost:8080/address
杭州市西湖区
设置环境为prod
北京北京
当然,这2种方式可以配合使用。在
application.yml
中保留之前的配置:
# 开发环境配置
---
spring:
profiles: dev
myconf:
user:
name: 开发-哈哈
# 生产环境配置
---
spring:
profiles: prod
myconf:
user:
name: 生产-嘿嘿嘿
修改接口:
@Value("${myconf.user.name}")
private String userName;
@Value("${myconf.user.address}")
private String address;
@GetMapping("/user")
public String user(){
return "姓名:" + userName + ", 地址:" + address;
}
环境dev,访问 http://localhost:8080/user
姓名:开发-哈哈, 地址:杭州市西湖区
版权声明:本文为CSDN博主「weixin_33735077」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_33735077/article/details/92535546