@SpringBootApplication的scanBasePackages自定义后不会走默认扫描主类当前包及子包的逻辑

现象:spring boot中当前模块引入另外一个模块后,需要用到另一个模块的接口等,因为spring boot中的@SpringBootApplication注解默认扫描主类当前包及子包,不做其他配置的话,无法扫描到另一个模块的注解,也就无法发现另一个模块的文件。

操作:既然知道@SpringBootApplication注解默认扫描主类当前包及子包,那么就加入属性,扫描其他模块的包即可。

@SpringBootApplication(scanBasePackages = {"com.demo.service"})

结果:配置之后确实能够扫描到另一个模块的包,autowired另一个包的类编辑器也没有报错说找不到了,项目也能够正常启动。但是启动模块后,本模块下的所有注释似乎没有扫描到,因为postman调用本模块的接口返回全都是404,甚至还有乱码。

@SpringBootApplication的scanBasePackages自定义后不会走默认扫描主类当前包及子包的逻辑

 结论:因为自定义了@SpringBootApplication的scanBasePackages属性后不会走默认扫描主类当前包及子包的逻辑,而是认定只扫描自定义配置的包路径,所以如果自定义了包路径,如果还要使用本模块的包,需要手动配置上本模块的包路径。

@SpringBootApplication(scanBasePackages = {"com.demo.myBaseModel","com.demo.service"})