Spring Boot 注解 @SpringBootApplication的使用詳解
@SpringBootApplication注解
一、簡介
@SpringBootApplication 是 Spring Boot 提供的一個注解,通常用于啟動類(主類)上,它是三個注解的組合:
1.@Configuration
表示該類是一個配置類,等價于 XML 配置文件。
2.@EnableAutoConfiguration
告訴 Spring Boot 啟動自動配置功能,根據(jù)類路徑下的依賴、配置等自動配置 Spring 應(yīng)用。
3.@ComponentScan
啟動組件掃描,默認(rèn)掃描當(dāng)前類所在包及其子包,將標(biāo)注了如 @Component、@Service、@Repository、@Controller 等注解的類注入 Spring 容器。
二、使用
1.指定要掃描的包
默認(rèn)情況下,@SpringBootApplication 會從它所在的包開始向下遞歸掃描所有子包中的組件(如 @Component、@Service、@Repository、@Controller、@Configuration 等)。
如果你的項(xiàng)目中有一些組件不在 @SpringBootApplication 所在包的子包里,就需要手動設(shè)置 scanBasePackages 來指定需要掃描的包路徑。
示例如下:
@SpringBootApplication(scanBasePackages = {"com.demo.module.system", "com.demo.module.infra"})
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}使用場景
- 你的啟動類 MyApplication 不在 com.demo 包下,比如它在 com.demo.core,而系統(tǒng)模塊和基礎(chǔ)設(shè)施模塊分別在 com.demo.module.system 和 com.demo.module.infra 中。這種情況下,默認(rèn)的掃描不會覆蓋 module.system 和 module.infra,你就需要手動指定
scanBasePackages。 - 你只希望掃描部分包,而不是整個項(xiàng)目的包。這樣能減少啟動時的掃描開銷,提高性能。
補(bǔ)充
使用 ${} 來注入配置屬性值,如下:
@SpringBootApplication(scanBasePackages = {"${demo.info.base-package}.server", "${demo.info.base-package}.module"})
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}.yaml文件如下:
demo:
info:
base-package: com.demo注:自定義starter使用@AutoConfiguration注解,無需將其路徑放入掃描路徑中。
到此這篇關(guān)于Spring Boot 注解 @SpringBootApplication的使用詳解的文章就介紹到這了,更多相關(guān)Spring Boot 注解 @SpringBootApplication內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java使用OpenFeign管理多個第三方服務(wù)調(diào)用
最近開發(fā)了一個統(tǒng)一調(diào)度類的項(xiàng)目,需要依賴多個第三方服務(wù),這些服務(wù)都提供了HTTP接口供我調(diào)用。感興趣的可以了解一下2021-06-06
Java實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)換為Word與PDF的實(shí)戰(zhàn)指南
這篇文章主要為大家詳細(xì)介紹了Java如何利用 Spire.Doc for Java實(shí)現(xiàn)將Markdown文檔轉(zhuǎn)換為Word與PDF,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-04-04
Java中使用同步回調(diào)和異步回調(diào)的示例詳解
這篇文章主要介紹了Java中使用同步回調(diào)和異步回調(diào)的相關(guān)資料,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
基于Java實(shí)現(xiàn)EWMA指數(shù)加權(quán)移動平均模型
指數(shù)加權(quán)移動平均(EWMA)是一種常用的時間序列分析方法,與傳統(tǒng)的簡單移動平均相比,EWMA賦予最近的數(shù)據(jù)點(diǎn)更高的權(quán)重,從而能夠更快地響應(yīng)數(shù)據(jù)的變化,本文將介紹EWMA的基本原理,并提供一個簡單的Java實(shí)現(xiàn)示例,需要的朋友可以參考下2025-05-05
使用Prometheus+Grafana的方法監(jiān)控Springboot應(yīng)用教程詳解
這篇文章主要介紹了用Prometheus+Grafana的方法監(jiān)控Springboot應(yīng)用,本文通過實(shí)例代碼詳解給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
淺談StringBuilder類的capacity()方法和length()方法的一些小坑
這篇文章主要介紹了StringBuilder類的capacity()方法和length()方法的一些小坑,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
基于@RestControllerAdvice與@ControllerAdvice的區(qū)別說明
這篇文章主要介紹了@RestControllerAdvice與@ControllerAdvice的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
IDEA安裝阿里巴巴編碼規(guī)范插件的兩種方式詳解(在線安裝和離線安裝)
這篇文章主要介紹了IDEA安裝阿里巴巴編碼規(guī)范插件的兩種方式詳解(在線安裝和離線安裝),本文通過截圖給大家展示的非常詳細(xì),需要的朋友可以參考下2021-09-09

