日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Boot实践教程(二):SpringApplication分析

發布時間:2023/12/10 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Boot实践教程(二):SpringApplication分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

本文會通過分析上一篇中跑起來的示例程序來分析一下Spring Boot程序運行的基本原理。

概要

在上一篇的介紹中,程序是通過SpringBoot1HelloworldApplication.main()方法運行起來的:

public static void main(String[] args) {SpringApplication.run(SpringBoot1HelloworldApplication.class, args); }

從代碼中可以看到,通過SpringApplication.run ,這樣一個靜態方法,非常便捷地啟動了一個Spring程序。SpringApplication這個類實際上就是一個Spring Boot應用的起點,每一個Spring Boot的應用都會有一個類似的啟動類,而run方法的實際的作用是初始化了一個Spring容器的上下文。下面我們來分析一下這個簡單的應用是如何啟動起來的。

思考

按照以往使用Spring Framework的經驗,初始化一個Spring容器,需要讀取一些配置信息,但是在我們這個示例程序里面是沒有做任何配置的,先看一下源碼。

源碼分析

從SpringApplication.run()方法一路追蹤,看到下面的一個運行的過程:

上面的源碼最下面的紅框中在加載META-INF下面的spring.factories文件,然后我們看到有很幾個包里面都帶這個文件,我們主要關注一下spring-boot-autoconfigure這個包下面的。

大致內容示例如下:

可以看出,這個文件基本上都是定義一些Initializer和Listener這些定義都會在SpringApplication。run啟動的時候進行加載。這些內容加載之后有什么用呢,以上圖中紅框對應的org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration 進行舉例說明,先看一下該類的源碼:

簡單理解一下這個類上的幾個注解:

  • @Configuration 本類是一個Spring的配置類
  • @ConditionalOnClass({ RabbitTemplate.class, Channel.class }) 類路徑中有注解中的兩個類則加載本配置
  • @EnableConfigurationProperties(RabbitProperties.class) 加載注解類中對應的配置類

到這里我們大概就知道了這個spring.factories 配置文件其實就是定義了一些Spring啟動需要的監聽以及Spring Boot 啟動是的默認配置,這樣就能達到在不做任何配置的情況下,啟用Spring Boot提供的默認配置來啟動程序。

SpringApplication運行及自動配置總結

簡單總結一下:

  • 每個Spring Boot 程序都包括一個main函數來運行SpringApplication.run(),進行系統啟動。(目前可以這么認為)
  • 這個run方法里面會初始化一個Spring的容器,初始化的內容都在項目及各個jar文件的META-INF下面的spring.factories中定義的各個配置類、監聽等等。
  • 每個自動配置類都是基于條件進行加載的,即我們在項目中引入某些包之后,不添加配置或者少量必需配置后即可使用該包的功能。
  • 歡迎關注我的微信公眾號:

    轉載于:https://my.oschina.net/lsjcoder/blog/1585346

    總結

    以上是生活随笔為你收集整理的Spring Boot实践教程(二):SpringApplication分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。