本文經過對 Spring 的源代碼來理解它是如何掃描 Bean 與資源的,由於本身有一個相似的需求,想把一堆的配置文件丟到 resources 下某個目錄中,在程序啓動的時候能加載它們。由於文件名是不必定的,因此不能直接指定文件名來加載,經過對 Spring 掃描資源的理解後,能夠在本身的代碼中手工掃描那些配置文件,之後有任何新的配置文件只須要扔到相應的配置目錄便可。html
下面以一個最簡單的 Spring Boot 項目爲例,調試並觀察源代碼java
@SpringBootApplication @ComponentScan(basePackages = "cc.unmi") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
仍是直奔主題吧,不一步一步的去探尋究竟是哪一個實現類去掃描資源的,用 Google 找到的是 ClassPathScanningCandidateComponentProvider
, 所以直接在這個類的敏感位置上打上斷點,好比它的構造函數 閱讀全文 >>spring