Spring 相关代码分析
本文通过对 Spring 的源代码来理解它是如何扫描 Bean 与资源的,因为自己有一个类似的需求,想把一堆的配置文件丢到 resources 下某个目录中,在程序启动的时候能加载它们。因为文件名是不一定的,所以不能直接指定文件名来加载,通过对 Spring 扫描资源的理解后,可以在自己的代码中手工扫描那些配置文件,以后有任何新的配置文件只需要扔到相应的配置目录即可。
下面以一个最简单的 Spring Boot 项目为例,调试并观察源代码
1 2 3 4 5 6 7 |
@SpringBootApplication @ComponentScan(basePackages = "cc.unmi") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } |
还是直奔主题吧,不一步一步的去探寻到底是哪个实现类去扫描资源的,用 Google 找到的是 ClassPathScanningCandidateComponentProvider
, 因此直接在这个类的敏感位置上打上断点,比如它的构造函数 阅读全文 >>