博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于ComponentScan
阅读量:6279 次
发布时间:2019-06-22

本文共 880 字,大约阅读时间需要 2 分钟。

在项目中因为ComponentScan的错误使用,产生了bug,特来记录一下。

使用@ComponentScan注解,能够在Spring中启用逐渐扫描。

如果没有其他配置的话,按照默认规则,@ComponentScan会以配置类所在的包作为基础包(base package)来扫描组件。

有一个原因会促使我们明确地设置基础包,那就是我们想要将配置放置在单独的包里,使其与其他的应用代码区分开来。

为了指定不同的基础包,所需要做的就是在@ComponentScan的value属性中指明包的名称:

@Configuration@ComponentScan("soundsystem")public class CDPlayerConfig {}复制代码

如果你想更加清晰地表明你所设置的是基础包,那么可以通过backPackages属性进行配置:

@Configuration@ComponentScan(basePackages="soundsystem")public class CDPlayerConfig {}复制代码

如果需要设置多个基础包,只需要将basePackages属性设置为要扫描的包的一个数组即可:

@Configuration@ComponentScan(basePackages={
"soundsystem", "video"})public class CDPlayerConfig {}复制代码

在上面例子中,所设置的基础包是以String类型表示的,但这种方法是类型不安全(not type-safe)的。如果你重构代码的话,那么指定的基础包就可能出现错误。

除了将包设置为简单的String类型之外,@ComponentScan还提供了另外一种方法,就是将其指定为包中所含的类或接口:

@Configuration@ComponentScan(basePackageClasses={CDPlayer.class, DVDPlayer.class})public class CDPlayerConfig {}复制代码

转载地址:http://zssva.baihongyu.com/

你可能感兴趣的文章
gogo learning
查看>>
软件工程概论作业2
查看>>
利用Boost影响Lucene查询结果的排序
查看>>
Spring boot(四)Spring Boot 集成 MyBatis
查看>>
BZOJ4502串——AC自动机(fail树)
查看>>
[Codeforces757G]Can Bash Save the Day?——动态点分治(可持久化点分树)
查看>>
BZOJ2521[Shoi2010]最小生成树——最小割
查看>>
BZOJ1861[Zjoi2006]书架——非旋转treap
查看>>
【转】delphi 修改代码补全的快捷键(由Ctrl+Space 改为 Ctrl + alt + Space)
查看>>
lombok安装和使用
查看>>
debian var目录
查看>>
项目功能积累
查看>>
邻接表(有向图)
查看>>
字的传送
查看>>
H3C路由交换设备配置的备份与恢复
查看>>
面试题 16:反转链表
查看>>
action类型的按钮和object按钮的用法
查看>>
并查集 4104 这是一棵树吗
查看>>
servlet流(转摘)
查看>>
Android 连接 SQL Server (jtds方式)——上
查看>>