一、問題
軟件開發中經常有開發環境、測試環境、預發布環境、生產環境,而且一般這些環境配置會各不相同,手動改配置麻煩且容易出錯,如何管理不同環境的配置參數呢?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