springboot之包掃描
先放上一張圖,我們的啓動類DemoApplication是在demo包下面的,所以默認springboot啓動只會掃描HelloController3這個類
因爲默認的掃描路徑是啓動類所在的包及其子包!
那麼,如何掃描默認路徑之外的類呢?
網上大部分都推薦兩種方式
方式一:
@ComponentScan(value = {"com.example.cool"})
指定包的名字,這時候需要注意了
這樣配置的話,就是隻能掃cool這個包下的 Hello1 和 Hello2 ,原本能訪問的 Hello3也就訪問不了了
可以換成以下方式:
@ComponentScan(value = {"com.example.cool","com.example.demo"})
@ComponentScan(value = {"com.example"})
就是要麼把包設置最上層,要麼就想訪問的都寫進來
方式二:
@ComponentScan(basePackageClasses = HelloController.class)
指定特殊的類,其實作用和方式一樣,HelloController在cool包下,也就是cool包下面的hello1 和 hello2 都能訪問了,但是demo包下的hello3訪問不了
意思就是指定特殊類這種方式,只會掃描特殊類所在的包及其子包