@ActiveProfiles注释在我将 springboot 升级到版本 2.4.2 后不起作用



以前,我们的应用程序基于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修复的影响。为了修复名称中带有逗号的支持概要文件,现在将活动概要文件设置为单独的索引属性。例如,如果激活配置文件ab,cd,将设置三个属性:

  1. spring.profiles.active[0]=a
  2. spring.profiles.active[1]=b,c
  3. spring.profiles.active[2]=d

在此修复之前,spring.profiles.active将被设置为a,b,c,d,这将导致4个配置文件处于活动状态:a,b,cd

我建议您检查检查spring.profiles.active属性的代码。直接访问属性的值是相当不寻常的。更典型的方法是在Environment上调用getActiveProfiles()

最新更新