我正在将@SpringBootApplication
应用程序从Spring Boot 1.5更新到2.2,从Spring 4.3更新到5.2,并且遇到自定义@Profile
注释的问题。
在旧版本中,我有注释
@Profile("sapConnector")
public @interface SapConnectorProfile {
}
,并且属于{sapConnector“的每个bean都带有@SapConnectorProfile
注释。当我运行应用程序时,我只定义了属性spring.profiles.active=sapConnector
,它会加载带有此注释的Bean。如果我将属性更改为f.e. spring.profiles.active=demoConnector
不会加载带有@SapConnectorProfile
批注的任何bean。
在新版的Spring中,即使使用属性@SapConnectorProfile
,也将加载所有带有spring.profiles.active=demoConnector
注释的bean。
在新的Spring中不可能再这样做了吗?
如果我使用注释@Profile("sapConnector")
而不是@SapConnectorProfile
,则配置文件可以正常工作。
谢谢您的帮助。
答案 0 :(得分:0)
我缺少@Retention(RetentionPolicy.RUNTIME)
注解。
使用时一切正常:
@Retention(RetentionPolicy.RUNTIME)
@Profile("sapConnector")
public @interface SapConnectorProfile {
}
我创建的问题:https://github.com/spring-projects/spring-framework/issues/23901