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


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

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

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

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

 

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

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM