SpringBoot的默认包扫描路径
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot的默认包扫描路径相关的知识,希望对你有一定的参考价值。
一、SpringBoot如何读取到我们的配置类
- 当我们编写配置类的时候,我们发现,并没有指定我们的配置类所在的位置,那么SpringBoot就可以读取到我们的配置类。那这是怎么做到的呢?
- 在SpringBoot框架的源码中,已经提供了默认的包扫描路径,当然,也是支持我们通过application.yaml或者application.properties去做定制化修改(可以通过@ComponentScan或者scanBasePackages参数)。
二、SpringBoot默认的包扫描路径
-
SpringbootTestApplication上唯一注解@SpringBootApplication为出发点,来探究其实现原理。
-
进入@SpringBootApplication的实现代码后,有一个@EnableAutoConfiguration注解引起了我们的注意。
-
再进入到@EnableAutoConfiguration注解中,发现引入了一个名为@EAutoConfigurationPackages的注解。
-
再进入到@AutoConfigurationPackage注解中,发现引入了一个名为AutoConfigurationPackages的注册类。
-
里面有关于包引用的逻辑处理,我们debug来看一下。
-
在debug的结果中,我们发现了默认包路径。其实,SpringBoot就是将SpringbootTestApplication类(即:xxxApplication)所在的package及其子包都注册到IOC中。指定了默认的包加载规则。
以上是关于SpringBoot的默认包扫描路径的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot 中@Autowired 注入失效原因及解决方法