我們在開發中和上線後的一些配置參數不通,如:資料庫連接配接、短信驗證等
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