我试图理解一个场景,当使用 spring xml 应用程序上下文时,该场景对我来说似乎很简单,但在使用注释时似乎更加模糊。
假设我有一个看起来像这样的类(这只是为了举例。不要注意类名等...):
@Component
public class BusinessLogicImpl implements BusinessLogic {
@Autowire
BeanThatTalksWithDataSource beanThatTalksWithDataSource;
@Autowire
BeanThatDoesSomeWork beanThatDoesSomeWork;
}
然后我还有一些使用这个 bean 的其他 bean
@Component
public class MainLogicImpl implements MainLogic {
@Autowire
BusinesLogic businessLogic;
}
假设 BeanThatTalksWithDataSource 有 2 个实现 - 一个与文件系统数据源一起使用,另一个与数据库一起使用。此外,BeanThatDoesSomeWork
有 2 种不同的实现。
我想创建 4 种不同的配置,其中涉及 BeanThatTalksWithDataSource 的 2 个实现与 BeanThatDoesSomeWork 的 2 个实现的每种组合,并在最后加载正确的变体MainLogicImpl
。
在 xml 中这相当简单 - 我创建了 4 个 xml 文件来保存 4 种不同的可能上下文。使用注释时,相当于这样的东西是什么?
我想强调,我谈论的是注释而不是@Configuration类。我正在尝试弄清楚仅使用注释是否可以实现这一点。
最佳答案
使用@Profile
注释所有实现,并在启动应用程序时设置 Activity 配置文件。现在,当组件扫描启动时,它只会拾取满足 Activity 配置文件的 bean。
链接
@个人资料 ( javadoc )
关于java - 使用 spring 注解创建不同的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18843986/