一、概述
ComponentScan顾名思义包扫描,底层其实就可以通过递归算法+反射将其装载成bean来实现的,实在开发过程中,Spring已经帮我们实现好了,我们其实就可以直接使用XML或者注解的形式来进行业务处理。
二、@ComponentScan的作用
@ComponentScan注解有两个作用
作用一:扫描含有@Component,@Controller,@Service和@Repository的类,并将其注入到spring容器中。
作用二:扫描含有@Configuration的类,并使其生效。
分析:作用一相信大家都明白其含义,再次不在赘述。作用二举例说明,例如Config2可以扫描到config2_test目录,该目录下不仅含有@Component,@Controller,@Service和@Repository注解标注的四个类,还包含Config1配置类。Config1配置类,可以扫描到config1_test目录,并且里面还包含一个@Bean注解。
三、同一个配置类上多个@ComponentScan可能会报错
下面的配置类在我公司电脑的idea版本里是可以将config3_test目录下的所有类都注册到spring容器中,但是在我家里的电脑上以及另一个同事的电脑上会报编译期错误,代码运行也会出错。
四、@ComponentScans的使用
由于同一个类上直接写多个@ComponentScan可能会报错,因此建议使用@ComponentScans,它可以解决直接在一个配置类上写多个@ComponentScan在有些电脑或idea版本上报错的问题。
网友评论