天天看點

springboot系列四 profile 多環境配置同一個配置檔案不同環境配置不同配置檔案不同環境

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

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