Spring @Autowiring,如何使用对象工厂选择实现?

时间:2008-11-10 10:04:01

标签: java spring

我试图让一段运行时状态决定要使用的接口的WHICH实现,最好只通过自动装配。

我已经尝试为接口使用动态代理创建一个对象工厂,并且我使用限定符来强制@Autowired注入以使用工厂。限定符是必需的,因为工厂和实现都响应相同的接口。

这个问题是我最终用@Qualifier注释每个@Autowired引用。我真正想做的是使用@NotCandidateForAutowiringByInterface(我的幻想注释)来注释非工厂实现,或者甚至更好地使spring更喜欢注入不合格字段时的单个非限定bean

我可能会想到这里完全错误的路线,所以欢迎提出其他建议。 任何人都知道如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

我自己没有看过这个,但我注意到Spring JavaConfig是M4,它似乎允许通过注释和Java代码的组合进行更灵活的配置。我想知道它是否能解决你的问题。

答案 1 :(得分:1)

您可以使用@Resource并指定工厂的bean名称。