Spring Boot本地环境:如何覆盖bootstrap.properties或忽略云配置?
解决Spring Boot本地与Dev环境AWS Parameter Store加载冲突问题
拆分bootstrap配置文件,按环境区分
别在通用的bootstrap.properties里统一设置开关,分别创建bootstrap-local.properties和bootstrap-dev.properties:bootstrap-local.properties中配置:aws.paramstore.enabled=falsebootstrap-dev.properties中配置:aws.paramstore.enabled=true
这样不同环境会自动加载对应环境的bootstrap配置,不会互相干扰。
确保Dev环境启用bootstrap上下文
Spring Boot 2.4及以上版本默认关闭了bootstrap配置加载,需要在application-dev.properties里加一行:spring.cloud.bootstrap.enabled=true,这样Dev环境启动时才会读取bootstrap-dev.properties里的配置。如果是2.4以下版本,这个配置默认开启,可以跳过这一步,但建议还是确认下。启动时指定对应环境
本地启动时,在IDE启动参数或命令行里加上--spring.profiles.active=local;Dev环境启动时,指定--spring.profiles.active=dev。这样应用会加载对应环境的所有配置文件(包括bootstrap和application系列)。验证配置是否生效
可以在应用里加个简单的接口验证配置值:@RestController public class ConfigCheckController { @Value("${aws.paramstore.enabled}") private String paramStoreEnabled; @GetMapping("/check-paramstore-config") public String checkConfig() { return "aws.paramstore.enabled: " + paramStoreEnabled; } }启动后访问该接口,确认本地环境返回
false,Dev环境返回true即可。
内容的提问来源于stack exchange,提问作者Som
相关产品推荐
相关产品推荐

