首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring @Autowired检测

Spring @Autowired检测
EN

Stack Overflow用户
提问于 2016-02-25 13:46:57
回答 2查看 631关注 0票数 0

如果我有一个使用spring的类,(将通过@Autowired连接)。我注意到,不仅要注入的类需要@Component,还需要使用它的类(注入)。为什么是那样的?spring不应该在@Autowired所在的地方注入吗?而不用使用@Component作为注射器类?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-25 13:53:19

Spring只处理和管理由构造型注释( @Component@Controller@Repository@Service )之一标记的类。

它不会扫描所有的类(这会使启动非常慢)。

如果这个类不是由Spring管理的,它就不会处理这个特定类中的任何注释。

票数 2
EN

Stack Overflow用户

发布于 2016-02-25 13:55:45

Spring中,一个与beans一起工作。bean是由spring context管理的java对象。当遇到包含bean@Inject时,Spring将为要注入的变量类型的bean搜索其context。如果没有定义这样的beanSpring就没有什么可注入的了。另外,如果带有@Inject的类没有bean,那么Spring将不知道它,因此不能向它注入任何东西。

要让Spring创建类的bean,有几种方法可用。通过注释,必须用@Component或更专门的注释@Service@Repository@Controller对类进行注释。只有到那时,Spring才会为类创建一个bean,这个类可以被@Inject编辑成其他beans

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

https://stackoverflow.com/questions/35629107

复制
相关文章

相似问题

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