@ComponentScan如不加任何参数,默认会扫面当前标注类所在的包及其子包下@Controller、@Service、@Repositroy注解,如果看一下这些注解源码会发现,这些注解都有共同的注解@Component,@ComponentScan注解默认会装配标示了@Component注解的类到Spring容器中,所有也会将以上三个装配
新建一个配置类:设置value参数
这样就会把com.test包所有标示了以上注解的类装配到spring容器
看一下@ComponentScan的源码
演示basePackageClasses参数,如我们把配置文件改成如下
则只有dao包下及IUserInfoService会被装配
演示includeFilters参数的使用如下:
新建一个service:
修改配置文件如下
这样TestService也会被装配到Spring容器中,虽然TestService类没有被注解标注
总结一下@ComponentScan的常用方式如下
自定扫描路径下边带有@Controller,@Service,@Repository,@Component注解加入spring容器
@Value说明要扫描的包
通过includeFilters加入扫描路径下没有以上注解的类加入spring容器
通过excludeFilters过滤出不用加入spring容器的类
自定义增加了@Component注解的注解方式