SpringBoot默認包掃描機制與默認配置文件詳解
一、SpringBoot默認包掃描機制 - 示例
默認情況下,掃描啟動類同級及其子級包下的所有文件。我們可以通過以下的測試來驗證一下。
1. 當BannerController放在啟動類的,程序運行成功
2. 當BannerController移動到上一級目錄,不在啟動類的包及其子包下,程序運行失敗
二、SpringBoot默認掃描包機制 - 原理
實際上SpringBoot啟動類上面的@SpringBootApplication
里面有一個@ComponentScan
,它可以掃描啟動類同級及其子級包下的所有文件,并且把帶有@Component
、@Repository
、@Service
、@Controller
的類注冊到Spring容器。
三、SpringBoot手動掃描包機制 - 原理&示例
正如上述所說的,SpringBoot默認掃描包機制是因為已經(jīng)在@ComponentScan
指定掃描啟動類同級及其子級包下的所有文件,當我要被掃描的文件不在啟動類同級及其子級包下,那么我們可以通過在啟動類頭上加上@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默認配置文件
當我們構(gòu)建完Spring Boot項目后,會在resources目錄下給我們一個默認的全局配置文件 application.properties,這是一個空文件,因為Spring Boot在底層已經(jīng)把配置都給我們自動配置好了,當在配置文件進行配置時,會修改SpringBoot自動配置的默認值。
配置文件名是固定的
application.properties
但我們可以修改為
application.yml
這兩個文件本質(zhì)是一樣的,區(qū)別只是其中的語法略微不同。
到此這篇關(guān)于SpringBoot默認包掃描機制與默認配置文件詳解的文章就介紹到這了,更多相關(guān)SpringBoot默認包掃描與默認配置文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot執(zhí)行延時任務(wù)之DelayQueue實例
這篇文章主要介紹了springboot執(zhí)行延時任務(wù)之DelayQueue實例,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02IDEA設(shè)置JVM可分配內(nèi)存大小和其他參數(shù)的教程
這篇文章主要介紹了IDEA設(shè)置JVM可分配內(nèi)存大小和其他參數(shù)的教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01JAVASE精密邏輯控制過程詳解(分支和循環(huán)語句)
在一個程序執(zhí)行的過程中各條語句的執(zhí)行順序?qū)Τ绦虻慕Y(jié)果是有直接影響的,這篇文章主要給大家介紹了關(guān)于JAVASE精密邏輯控制(分支和循環(huán)語句)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-04-04mybatis返回的map結(jié)果如何設(shè)置有序
這篇文章主要介紹了mybatis返回的map結(jié)果如何設(shè)置有序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01