Spring本地调试时如何排除已通过spring.profiles.include引入的auth配置?
针对你的需求,以下是几种可行的解决方案:
方案1:用SpEL表达式条件化引入auth配置
修改根application.yml中的spring.profiles.include配置,通过SpEL表达式判断当前是否为local环境,仅在非local环境加载auth配置:
spring: profiles: include: "#{!environment.acceptsProfiles('local') ? 'auth' : ''}"
当激活local profile时,表达式返回空字符串,不会加载application-auth.yml;DEV/UT/PROD环境下则正常引入auth配置,完全符合你的要求。
方案2:将auth的include配置拆分到各环境文件中
把spring.profiles.include: auth从根application.yml移到对应环境的配置文件里:
- 在
application-dev.yml、application-ut.yml、application-prod.yml中分别添加:
spring: profiles: include: auth
根application.yml不再保留auth的include配置,这样只有激活上述三个环境时才会加载auth,local环境自然不会生效。
方案3:在local配置中清空include列表
如果根application.yml里只引入了auth这一个额外配置,可以在application-local.yml中直接覆盖include配置:
spring: profiles: include: ""
注意:这种方式会清空所有通过spring.profiles.include引入的配置,如果你还有其他需要全局引入的配置,不建议用这个方法。
内容的提问来源于stack exchange,提问作者ildvzg68472
相关产品推荐
相关产品推荐

