首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring - scanning查找bean

Spring - scanning查找bean
EN

Stack Overflow用户
提问于 2012-08-08 03:00:34
回答 3查看 2.6K关注 0票数 2

我对Spring bean扫描有点困惑。

AFAIK我需要把<context:component-scan base-package="some.package" />

Spring将从给定包的根开始搜索bean。

但是现在在我的应用程序中,如果我从.xml配置文件中删除这一行,并启动Tomcat,我会得到

代码语言:javascript
复制
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4dd1b: defining beans

然后我得到了一个很长的beans列表,其中一些来自Spring,但也有一些我希望在配置文件中添加<context:component-scan base-package="some.package" />的beans。如果此行不存在,则不会映射方法。

为什么Spring要检测这些bean?是什么让Spring扫描我的包中带注释的类?

如果相关,我使用的是Spring3

编辑:如果我不删除<context:component-scan base-package="some.package" />,我会得到两次预实例化单例的信息。所以看起来这些豆子被扫描了两次。

编辑:似乎在ContextListener加载的一个文件中,我进行了组件扫描。这就是为什么我把那些豆子列了两次。

EN

回答 3

Stack Overflow用户

发布于 2012-08-08 04:15:41

你必须在你的config.xml中有<context:component-scan base-package="se.eleon" />,在那里spring会扫描你所有的代码,如果你不在里面放任何东西,什么都不会发生,因为spring mvc期待它。这就是spring寻找所有注解的地方

票数 0
EN

Stack Overflow用户

发布于 2012-08-08 05:22:15

您的应用程序上下文XML中是否也有<context:annotation-config/>?如果是这样的话,这就解释了为什么在没有<context:component-scan .../>的情况下初始化bean。

This所以post实际上解释了两者之间的区别。

票数 0
EN

Stack Overflow用户

发布于 2012-08-08 14:07:01

是否有两个dispatcher xml配置文件正在扫描同一个包?如果so初始化发生了两次。

使用这个自动扫描过程的原因是identify you注解,比如@Controller、@Autowire等等。否则,这些注解对Spring IOC容器没有任何意义。

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

https://stackoverflow.com/questions/11852385

复制
相关文章

相似问题

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