升级Spring Boot 2.4.8后@ActiveProfiles逗号分隔配置失效咨询
问题原因说明
这个是Spring Framework 5.3.0版本引入的官方正式变更,不属于未公开的异常问题:
- Spring 5.2.x及更早版本中,
@ActiveProfiles注解传入单个带逗号的字符串时,框架会隐式按逗号拆分内容,将其解析为多个独立的Profile,你的旧写法@ActiveProfiles("dev,postgres")就是依赖这个隐式逻辑实现的多Profile加载 - Spring 5.3.0版本之后(你升级使用的Spring 5.3.8属于该版本区间),官方移除了这个隐式拆分规则,调整为:仅当你显式传入字符串数组时,才会将每个数组元素识别为独立的Profile;如果传入单个字符串,无论是否包含逗号,都会被整体识别为单个Profile名称,所以你之前的写法会被框架当成要加载名为
dev,postgres的单个Profile,自然找不到对应的两个独立配置文件 - 你调整后的写法
@ActiveProfiles(value = {"dev", "postgres"})是符合新版本规则的标准写法,无需额外修改其他配置。
内容的提问来源于stack exchange,提问作者JordiJansen
相关产品推荐
相关产品推荐

