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

SpringBoot核心@SpringBootApplication使用介紹

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

@SpringBootApplication的使用

1. Spring Boot 的核心

1.1. 入口類和 @SpringBootApplication

Spring Boot的項目一般都會有*Application的入口類,入口類中會有main方法,這是一個標(biāo)準(zhǔn)的Java應(yīng)用程序的入口方法。

@SpringBootApplication注解是Spring Boot的核心注解,它其實是一個組合注解: 

該注解主要組合了以下注解:

@SpringBootConfiguration:這是Spring Boot項目的配置注解,這也是一個組合注解:

在Spring Boot項目中推薦使用@ SpringBootConfiguration替代@Configuration

@EnableAutoConfiguration:啟用自動配置,該注解會使Spring Boot根據(jù)項目中依賴的jar包自動配置項目的配置項:

如:我們添加了spring-boot-starter-web的依賴,項目中也就會引入SpringMVC的依賴,Spring Boot就會自動配置tomcat和SpringMVC 

@ComponentScan:默認掃描@SpringBootApplication所在類的同級目錄以及它的子目錄。

1.2 關(guān)閉自動配置

通過上述,我們得知,Spring Boot會根據(jù)項目中的jar包依賴,自動做出配置,Spring Boot支持的自動配置如下(非常多):

如果我們不需要Spring Boot自動配置,想關(guān)閉某一項的自動配置,該如何設(shè)置呢?

比如: 我們不想自動配置 Redis ,想手動配置。

當(dāng)然了,其他的配置就類似了

@SpringBootApplication及pom講解

@SpringBootApplication 主要有以下注解組成

@SpringBootConfiguration
@EnableAutoConfiguration

@SpringBootConfiguration

Spring Boot 配置類, 它本質(zhì)上是@Configuration

@Configuration配置類注解,它本質(zhì)上是一個組件@Component

@Configuration
public @interface SpringBootConfiguration {
@Component
public @interface Configuration {

@EnableAutoConfiguration 開啟自動配置功能

有了這個注解,以前我們需要自己配置的東西,現(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啟動時從META-INF/spring.factories文件中獲取EnableAutoConfiguration所指定的值,將這些值作為自動配置類導(dǎo)入容器中,自動配置類就生效,幫我們進行自動配置工作。

Spring啟動器

spring-boot-starter-parent–>依賴于spring-boot-dependencies

Spring 的版本管理中心,我們導(dǎo)入的包默認不需要寫版本(如果沒在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 場景啟動器

SpringBoot將所有的功能場景都抽取出來,做成Starters, 只需要在項目里引入這些starter, 相關(guān)依賴都會導(dǎo)進來。要用什么功能就導(dǎo)入什么場景的starter。

<!-- spring boot幫我們導(dǎo)入web模塊正常運行所依賴的組件: jason, spring-webmvc, spring-web等-->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IntelliJ IDEA中如何調(diào)試Java Stream操作

    IntelliJ IDEA中如何調(diào)試Java Stream操作

    這篇文章主要介紹了IntelliJ IDEA中如何優(yōu)雅的調(diào)試Java Stream操作,在強大的IDEA插件支持下,stream的調(diào)試其實也沒那么難了,下面就來學(xué)習(xí)一下在IDEA中如何調(diào)試stream操作吧
    2022-05-05
  • 深入解析java中的locale

    深入解析java中的locale

    以下是對java中的locale進行了深入的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • Java用POI導(dǎo)入導(dǎo)出Excel實例分析

    Java用POI導(dǎo)入導(dǎo)出Excel實例分析

    在本篇文章里小編給大家整理的是一篇關(guān)于Java用POI導(dǎo)入導(dǎo)出Excel實例分析內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-11-11
  • springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)

    springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)

    這篇文章主要介紹了springboot?使用websocket技術(shù)主動給前端發(fā)送消息的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 聊聊SpringBoot中組件無法被注入的問題

    聊聊SpringBoot中組件無法被注入的問題

    這篇文章主要介紹了SpringBoot中組件無法被注入的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹

    劍指Offer之Java算法習(xí)題精講字符串與二叉搜索樹

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • Java線程池隊列LinkedTransferQueue示例詳解

    Java線程池隊列LinkedTransferQueue示例詳解

    這篇文章主要為大家介紹了Java線程池隊列LinkedTransferQueue示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • SpringBoot項目集成Flyway進行數(shù)據(jù)庫版本控制的詳細教程

    SpringBoot項目集成Flyway進行數(shù)據(jù)庫版本控制的詳細教程

    這篇文章主要介紹了SpringBoot項目集成Flyway進行數(shù)據(jù)庫版本控制,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • 基于SpringMVC接受JSON參數(shù)詳解及常見錯誤總結(jié)

    基于SpringMVC接受JSON參數(shù)詳解及常見錯誤總結(jié)

    下面小編就為大家分享一篇基于SpringMVC接受JSON參數(shù)詳解及常見錯誤總結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • Mybatis中resultMap的使用總結(jié)

    Mybatis中resultMap的使用總結(jié)

    resultmap是mybatis中最復(fù)雜的元素之一,它描述如何從結(jié)果集中加載對象,主要作用是定義映射規(guī)則、級聯(lián)的更新、定制類型轉(zhuǎn)化器。今天通過本文給大家介紹Mybatis中resultMap的使用,感興趣的朋友參考下吧
    2021-06-06

最新評論