我对Spring bean扫描有点困惑。
AFAIK我需要把
Spring将从给定包的根目录中搜索bean。
但是现在在我的应用程序中,如果我从. xml配置文件中删除这一行,并启动Tomcat,我会得到
INFO : org.springframework.beans.factory.support.DefaultListableBeanFactory - Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4dd1b: defining beans
然后我得到了一个很长的bean列表,其中一些来自Spring,但也有一些我希望通过
为什么Spring会发现这些豆子?是什么让Spring在我的包中扫描带注释的类?
如果它是相关的,我正在使用Spring3
编辑:如果我不删除
编辑:似乎在ContextListener加载的一个文件中,我进行了组件扫描。这就是为什么我把这些豆子列了两次。
是否有两个dispatcher xml配置文件正在扫描同一个包?如果是这样的话,初始化会发生两次。
有这种自动扫描过程的原因是识别您的注释,如@Controller@Autowire等。否则,这些注释对Spring IOC容器没有任何意义。
你必须有
你也有
这篇文章实际上解释了两者之间的区别。
我有一个eclipse java项目,在/src/main/java(包com.xxx.yyy)下。我还在/src/Test/java(包com.xxx.yyy)下有几个测试类。测试类(注释为@Service(value=“sampleclient”)公共类sampleclient{…}由位于/src/main/java下的一个包中的框架代码调用。 如果所有文件/包都位于/src/main/jav
我找不到关于beans xml配置的文档,所以我在这里问:在 在概念上与Java中的包相同吗? 例如,在我的src/main/java(Eclipse中的项目资源管理器视图,平面包演示)中,假设我有4个包com.amazon、com.amazon.entities、com.amazon.services、com.amazon.repositories.在Navigator视图中,我只有“amazo
我正在编写一个新的SpringBoot项目,其中我的根包名是“com.example”。在我的gradle配置中,我添加了一个第三方库的依赖项,它的根包名为“org.base”。现在,这个库中有带有@Component注释的类,我想在代码中使用@Autowired 在我的配置类中,我也扫描第三方库的基本包。 当我运行应用程序时,spring无法从这个库中找到/创建bean,我得到了一个bean n
在上一章中,Nexpose已成功安装。让我们看看如何运行它以及该工具的功能。Nexpose使用自己的数据库,所以我们要做的第一件事是关闭Kali Linux的数据库。如果两个数据库都在同一个端口上运行,它们就会相互冲突。现在,我们停止postgresql服务。应该记住,在运行Nexpose之前,需要关闭数据库。停止数据库的命令如下: 现在,我们进入到安装Nexpose的位置。除非在安装过程中更改了
在这一章节中,我们将使用在安装工具时设置的用户名和密码登录。在上面的屏幕截图中显示了Metasploit社区的Web界面: 登录后,我们可以访问该帐户并转到用户设置或注销。还可以检查软件更新。 当我们第一次登录时,它会要求我们输入激活密钥。激活密钥将发送到下载工具时输入的电子邮件地址。我们应该确保在下载工具时输入有效的电子邮件地址。 接下来开始创建扫描,我们将点击Project | New Pro
问题内容: 我有几个需要用名称注释的类,因此我将注释定义为 现在,需要此注释的类定义为 我使用下面的代码来扫描注释 问题是返回的映射包含,但是我需要映射包含作为键,这是Annotation的值而不是bean名称。 有办法吗? 问题答案: 只需获取注释对象并提取值即可 让我知道是否不清楚。