0

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

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

问题是我最终用@Qualifier 注释了每个@Autowired 引用。我真正想做的是用@NotCandidateForAutowiringByInterface(我的幻想注释)之类的东西来注释非工厂实现,或者更好地让spring在注入到非限定字段时更喜欢单个非限定bean

我可能会在这里完全错误地思考,所以欢迎提出其他建议。有谁知道如何做到这一点?

4

2 回答 2

1

我自己还没有看过这个,但我注意到Spring JavaConfig被做成了 M4,它似乎允许通过注释和 Java 代码的组合进行更灵活的配置。我想知道它是否会为您的问题提供解决方案。

于 2008-11-10T10:57:45.060 回答
1

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

于 2008-11-11T19:30:42.073 回答