首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在@Autowired上实施限制

如何在@Autowired上实施限制
EN

Stack Overflow用户
提问于 2011-10-20 16:13:38
回答 2查看 719关注 0票数 0

我们在项目中使用Spring,并使用@Autowired自动注入依赖项。我想禁止来自特定模块的某些bean的自动装配,例如,可以从模块B中的模块A自动装配bean,但不能在模块C中自动装配bean。使用Spring可以吗?

EN

回答 2

Stack Overflow用户

发布于 2011-10-20 18:03:24

解决这个问题的最好方法是通过javax.inject qualifiers。使用适当的限定符注释bean,然后在注入点使用它:

代码语言:javascript
复制
@Autowired
@FooQualifier
private YourService service;

否则,它很快就会变得一团糟,哪个实现被注入到哪里。

另一种选择是将一个bean指定为@Primary -对于给定的注入点,它将优先于其他bean。

票数 1
EN

Stack Overflow用户

发布于 2018-01-20 09:35:51

是的,这是可能的,但不是“漂亮”。您可以使用BeanPostProcessor,当您获得一个bean时,检查它是否是您的“父”类型之一,以及它的所有子bean是否都属于允许的类型。否则,您可以抛出异常或将这些字段设置为null。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7832935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档