SpringBoot核心@SpringBootApplication使用介紹
@SpringBootApplication的使用
1. Spring Boot 的核心
1.1. 入口類和 @SpringBootApplication
Spring Boot的項(xiàng)目一般都會(huì)有*Application的入口類,入口類中會(huì)有main方法,這是一個(gè)標(biāo)準(zhǔn)的Java應(yīng)用程序的入口方法。
@SpringBootApplication注解是Spring Boot的核心注解,它其實(shí)是一個(gè)組合注解:
該注解主要組合了以下注解:
@SpringBootConfiguration:這是Spring Boot項(xiàng)目的配置注解,這也是一個(gè)組合注解:
在Spring Boot項(xiàng)目中推薦使用@ SpringBootConfiguration替代@Configuration
@EnableAutoConfiguration:啟用自動(dòng)配置,該注解會(huì)使Spring Boot根據(jù)項(xiàng)目中依賴的jar包自動(dòng)配置項(xiàng)目的配置項(xiàng):
如:我們添加了spring-boot-starter-web的依賴,項(xiàng)目中也就會(huì)引入SpringMVC的依賴,Spring Boot就會(huì)自動(dòng)配置tomcat和SpringMVC
@ComponentScan:默認(rèn)掃描@SpringBootApplication所在類的同級目錄以及它的子目錄。
1.2 關(guān)閉自動(dòng)配置
通過上述,我們得知,Spring Boot會(huì)根據(jù)項(xiàng)目中的jar包依賴,自動(dòng)做出配置,Spring Boot支持的自動(dòng)配置如下(非常多):
如果我們不需要Spring Boot自動(dòng)配置,想關(guān)閉某一項(xiàng)的自動(dòng)配置,該如何設(shè)置呢?
比如: 我們不想自動(dòng)配置 Redis ,想手動(dòng)配置。
當(dāng)然了,其他的配置就類似了
@SpringBootApplication及pom講解
@SpringBootApplication 主要有以下注解組成
@SpringBootConfiguration @EnableAutoConfiguration
@SpringBootConfiguration
Spring Boot 配置類, 它本質(zhì)上是@Configuration
@Configuration配置類注解,它本質(zhì)上是一個(gè)組件@Component
@Configuration public @interface SpringBootConfiguration { @Component public @interface Configuration {
@EnableAutoConfiguration 開啟自動(dòng)配置功能
有了這個(gè)注解,以前我們需要自己配置的東西,現(xiàn)在都交由spring boot配置
@AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration {
1. @AutoConfigurationPackage
@Import({Registrar.class}) public @interface AutoConfigurationPackage {
在Registrar–>registerBeanDefinitions–>AutoConfigurationPackages.register中,如下圖:
獲得@SpringBootApplication 標(biāo)注類的包名,并把該包下的所有組件掃描到spring容器中(在registerBeanDefinition中將對象放到beanDefinition中)
2. @Import({AutoConfigurationImportSelector.class})
Spring Boot啟動(dòng)時(shí)從META-INF/spring.factories文件中獲取EnableAutoConfiguration所指定的值,將這些值作為自動(dòng)配置類導(dǎo)入容器中,自動(dòng)配置類就生效,幫我們進(jìn)行自動(dòng)配置工作。
Spring啟動(dòng)器
spring-boot-starter-parent–>依賴于spring-boot-dependencies
Spring 的版本管理中心,我們導(dǎo)入的包默認(rèn)不需要寫版本(如果沒在dependencies里管理的需要注明版本)
? ? <parent> ? ? ? ? <groupId>org.springframework.boot</groupId> ? ? ? ? <artifactId>spring-boot-starter-parent</artifactId> ? ? ? ? <version>2.2.2.RELEASE</version> ? ? ? ? <relativePath/> <!-- lookup parent from repository --> ? ? </parent>
? <parent> ? ? <groupId>org.springframework.boot</groupId> ? ? <artifactId>spring-boot-dependencies</artifactId> ? ? <version>2.2.2.RELEASE</version> ? ? <relativePath>../../spring-boot-dependencies</relativePath> ? </parent>
SpringBoot 場景啟動(dòng)器
SpringBoot將所有的功能場景都抽取出來,做成Starters, 只需要在項(xiàng)目里引入這些starter, 相關(guān)依賴都會(huì)導(dǎo)進(jìn)來。要用什么功能就導(dǎo)入什么場景的starter。
<!-- spring boot幫我們導(dǎo)入web模塊正常運(yùn)行所依賴的組件: jason, spring-webmvc, spring-web等--> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ IDEA中如何調(diào)試Java Stream操作
這篇文章主要介紹了IntelliJ IDEA中如何優(yōu)雅的調(diào)試Java Stream操作,在強(qiáng)大的IDEA插件支持下,stream的調(diào)試其實(shí)也沒那么難了,下面就來學(xué)習(xí)一下在IDEA中如何調(diào)試stream操作吧2022-05-05Java用POI導(dǎo)入導(dǎo)出Excel實(shí)例分析
在本篇文章里小編給大家整理的是一篇關(guān)于Java用POI導(dǎo)入導(dǎo)出Excel實(shí)例分析內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。2021-11-11springboot?使用websocket技術(shù)主動(dòng)給前端發(fā)送消息的實(shí)現(xiàn)
這篇文章主要介紹了springboot?使用websocket技術(shù)主動(dòng)給前端發(fā)送消息的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹
跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03Java線程池隊(duì)列LinkedTransferQueue示例詳解
這篇文章主要為大家介紹了Java線程池隊(duì)列LinkedTransferQueue示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫版本控制的詳細(xì)教程
這篇文章主要介紹了SpringBoot項(xiàng)目集成Flyway進(jìn)行數(shù)據(jù)庫版本控制,本文分步驟通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07基于SpringMVC接受JSON參數(shù)詳解及常見錯(cuò)誤總結(jié)
下面小編就為大家分享一篇基于SpringMVC接受JSON參數(shù)詳解及常見錯(cuò)誤總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03