我试图让一段运行时状态决定要使用的接口的WHICH实现,最好只通过自动装配。
我已经尝试为接口使用动态代理创建一个对象工厂,并且我使用限定符来强制@Autowired注入以使用工厂。限定符是必需的,因为工厂和实现都响应相同的接口。
这个问题是我最终用@Qualifier注释每个@Autowired引用。我真正想做的是使用@NotCandidateForAutowiringByInterface(我的幻想注释)来注释非工厂实现,或者甚至更好地使spring更喜欢注入不合格字段时的单个非限定bean
我可能会想到这里完全错误的路线,所以欢迎提出其他建议。 任何人都知道如何实现这一目标?
答案 0 :(得分:1)
我自己没有看过这个,但我注意到Spring JavaConfig是M4,它似乎允许通过注释和Java代码的组合进行更灵活的配置。我想知道它是否能解决你的问题。
答案 1 :(得分:1)
您可以使用@Resource并指定工厂的bean名称。