Springboot中@ComponentScan 注解

三个点:

1、工程中Application类的位置。默认情况下就不需要配置@ComponentScan这个注解了。 因为Application类,在启动的时候,默认是加载和Application类所在同一个目录下的所有类,包括所有子目录下的类。所以一般情况下,启动类的位置是
有特殊要求的。
Springboot中@ComponentScan 注解

如上图所示,Application.java 类在com.pa.market包下,所以它自动扫描同级目录market下的所有类。

2、假设写的模块,编译成了jar包,并且上传到了私服。在pom中以第三方包的形式依赖进来。
如果jar包中也存在注解,为了spring boot启动的时候,注解可以被扫描到,需要做的就是
在spring boot启动类中配置上 @ComponentScan注解,并且指定第三方jar包的根路径。
所以一般情况下,公司级的第三包前面的路径名最好一直。比方说 com.pa 这样就不会出现遗漏的情况。

3、还有一个说法是,第三方包中最好不要使用注解,因为注解会带来调用者使用不方便,需要配置扫描注解等。如果遗漏指定包扫描路径,那么就会出bean加载失败的情况。所以我们看到的最基础的第三方jar包,几乎是没有注解的。