Spring 配置文件不明确
Spring profiles ambiguity
我有两个实现相同接口的@Component bean。有一个配置文件注释,另一个没有,如下所示。
@Component
@Profile("mock")
public class CompMock implements Comp {...}
@Component
public class CompReal implements Comp {...}
如果我 运行 带有 -Dspring.profiles.active=mock
的应用程序,为什么连接第二个 bean 而不是第一个用 Profile("mock") 明确注释的 bean?
@Profile("mock")
表示包含,如果配置文件是 "mock"。就这样。 @Profile
不表示偏好。
有多种方法可以解决您的问题,包括将 @Profile("!mock")
添加到 CompReal
。
我有两个实现相同接口的@Component bean。有一个配置文件注释,另一个没有,如下所示。
@Component
@Profile("mock")
public class CompMock implements Comp {...}
@Component
public class CompReal implements Comp {...}
如果我 运行 带有 -Dspring.profiles.active=mock
的应用程序,为什么连接第二个 bean 而不是第一个用 Profile("mock") 明确注释的 bean?
@Profile("mock")
表示包含,如果配置文件是 "mock"。就这样。 @Profile
不表示偏好。
有多种方法可以解决您的问题,包括将 @Profile("!mock")
添加到 CompReal
。