欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot核心@SpringBootApplication使用介紹

 更新時(shí)間:2022年03月21日 10:58:25   作者:盲目的拾荒者  
這篇文章主要介紹了SpringBoot核心@SpringBootApplication的使用,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

@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)文章

最新評論