springboot 多環境配置


一、問題

  軟件開發中經常有開發環境、測試環境、預發布環境、生產環境,而且一般這些環境配置會各不相同,手動改配置麻煩且容易出錯,如何管理不同環境的配置參數呢?spring-boot + maven可以解決不同環境獨立配置不同參數的問題。

二、多環境配置

不同環境的配置yml文件名不一樣:

  • application-dev.yml(開發環境)
  • application-test.yml(測試環境)
  • application-uat.yml(預發布)
  • application-pro.yml(生產環境)

eg:

application-dev.yml配置示例:

info:
  build:
    name: ${project.artifactId}
    groupId: ${project.groupId}
    artifactId: ${project.artifactId}
    version: ${project.version}

server:
  port: 8081

endpoints:
  enabled: true
  sensitive: false

data:
  test:
    envName: dev
    envconfig: 127.0.0.1:8081

application.yml

spring:
  profiles:
    active: dev

如果要切換不同環境,只需要修改spring.profiles.active即可。

讀取配置參數: 

@Setter
@Getter
@NoArgsConstructor
@AllArgsConstructor
@Component
@ConfigurationProperties(prefix = "data.test")
public class DataConfig {
    private String envName;
    private String envconfig;
}

 驗證環境參數: 

@Api("home controller")
@RestController
public class HomeController {
    @Autowired
    private DataConfig dataConfig;

    @RequestMapping("/env")
    @ApiOperation("env")
    public Object testEnv() {
        return dataConfig;
    }
}

三、設置環境

1、啟動jar包時設置spring.profiles.active

java -jar muti-env-config.jar --spring.profiles.active=test

 2、maven打包時候設置環境(設置 pro 環境)

clean package -DskipTests -Ppro

pro環境示例:

 

demo參考地址:muti-env-demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM