SpringBoot默認(rèn)包掃描機(jī)制與默認(rèn)配置文件詳解
一、SpringBoot默認(rèn)包掃描機(jī)制 - 示例
默認(rèn)情況下,掃描啟動類同級及其子級包下的所有文件。我們可以通過以下的測試來驗證一下。
1. 當(dāng)BannerController放在啟動類的,程序運(yùn)行成功
2. 當(dāng)BannerController移動到上一級目錄,不在啟動類的包及其子包下,程序運(yùn)行失敗
二、SpringBoot默認(rèn)掃描包機(jī)制 - 原理
實(shí)際上SpringBoot啟動類上面的@SpringBootApplication
里面有一個@ComponentScan
,它可以掃描啟動類同級及其子級包下的所有文件,并且把帶有@Component
、@Repository
、@Service
、@Controller
的類注冊到Spring容器。
三、SpringBoot手動掃描包機(jī)制 - 原理&示例
正如上述所說的,SpringBoot默認(rèn)掃描包機(jī)制是因為已經(jīng)在@ComponentScan
指定掃描啟動類同級及其子級包下的所有文件,當(dāng)我要被掃描的文件不在啟動類同級及其子級包下,那么我們可以通過在啟動類頭上加上@ComponentScan()來指定我們要掃描的包。
四、@ComponentScan與@MapperScan
@Component
、@Repository
、@Service
、@Controller
、@ComponentScan
是Spring注解所以@ComponentScan只能掃描@Component、@Repository、@Service、@Controller
@Mapper
、@MapperScan
是Mybatis注解所以@MapperScan只能掃描@Mapper
所以要是在Mapper層要是使用了@Mapper注解,那么SpringBoot的@ComponentScan是掃描不到的,必須在啟動類上面加上@MapperScan掃描。
五、SpringBoot默認(rèn)配置文件
當(dāng)我們構(gòu)建完Spring Boot項目后,會在resources目錄下給我們一個默認(rèn)的全局配置文件 application.properties,這是一個空文件,因為Spring Boot在底層已經(jīng)把配置都給我們自動配置好了,當(dāng)在配置文件進(jìn)行配置時,會修改SpringBoot自動配置的默認(rèn)值。
配置文件名是固定的
application.properties
但我們可以修改為
application.yml
這兩個文件本質(zhì)是一樣的,區(qū)別只是其中的語法略微不同。
到此這篇關(guān)于SpringBoot默認(rèn)包掃描機(jī)制與默認(rèn)配置文件詳解的文章就介紹到這了,更多相關(guān)SpringBoot默認(rèn)包掃描與默認(rèn)配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Jenkins 實(shí)現(xiàn)Gitlab事件自動觸發(fā)Jenkins構(gòu)建及釘釘消息推送
這篇文章主要介紹了Jenkins 實(shí)現(xiàn)Gitlab事件自動觸發(fā)Jenkins構(gòu)建及釘釘消息推送,應(yīng)該會對大家學(xué)習(xí)Jenkins有所啟發(fā)2021-04-04解析Spring RestTemplate必須搭配MultiValueMap的理由
本文給大家介紹Spring RestTemplate必須搭配MultiValueMap的理由,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-11-11Java實(shí)現(xiàn)郵箱發(fā)送功能實(shí)例(阿里云郵箱推送)
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)郵箱發(fā)送功能的相關(guān)資料,利用阿里云郵箱推送,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09Spring Boot 中PageHelper 插件使用配置思路詳解
這篇文章主要介紹了Spring Boot 中PageHelper 插件使用配置及實(shí)現(xiàn)思路,通過引入myabtis和pagehelper依賴,在yml中配置mybatis掃描和實(shí)體類,具體實(shí)現(xiàn)方法跟隨小編一起看看吧2021-08-08StreamAPI多次消費(fèi)一個stream代碼實(shí)例
這篇文章主要介紹了StreamAPI多次消費(fèi)一個stream代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04SpringMVC?RESTFul實(shí)戰(zhàn)案例訪問首頁
這篇文章主要為大家介紹了SpringMVC?RESTFul實(shí)戰(zhàn)案例訪問首頁,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Java 詳解循環(huán)屏障CyclicBarrier如何實(shí)現(xiàn)多線程分段等待執(zhí)行完成
CyclicBarrier是一個同步工具類,可以翻譯成循環(huán)屏障,也叫障礙器或同步屏障。CyclicBarrier內(nèi)部有一個計數(shù)器count,調(diào)用障礙器的await方法會使計數(shù)器count的值減一,當(dāng)計數(shù)器count的值為0時,表明調(diào)用了await方法線程已經(jīng)達(dá)到了設(shè)置的數(shù)量2021-11-11