以前,我们的应用程序基于springboot 2.2.2版本,我们的一个测试是使用@ActiveProfiles("test")
覆盖application.xml
文件中的SPRING_PROFILES_ACTIVE
属性配置。一切都很顺利。
spring.profiles.active=${SPRING_PROFILES_ACTIVE:}
然而,当我们把springboot升级到2.4.2版本后,它不再工作了,我们只能读取spring.profiles.active在我们的测试中作为空字符串,但之前它可以被读成字符串"test"
我该怎么做才能使@ActiveProfiles注释在springboot的2.4.2版本中工作?感谢。
您正在受到Spring Boot问题19537修复的影响。为了修复名称中带有逗号的支持概要文件,现在将活动概要文件设置为单独的索引属性。例如,如果激活配置文件a
、b,c
和d
,将设置三个属性:
spring.profiles.active[0]=a
spring.profiles.active[1]=b,c
spring.profiles.active[2]=d
在此修复之前,spring.profiles.active
将被设置为a,b,c,d
,这将导致4个配置文件处于活动状态:a
,b
,c
和d
。
我建议您检查检查spring.profiles.active
属性的代码。直接访问属性的值是相当不寻常的。更典型的方法是在Environment
上调用getActiveProfiles()
。