SpringBoot無廢話入門02:SpringBoot啓動分析

1.核心註解web

        在上文中,咱們講到了@SpringBootApplication是SpringBoot的核心註解。spring

        能夠很方便的在idea中下載源碼來查看該註解的源碼,以下:app

        能夠看到,該註解自己又被其它註解所疊加。其中最重要的註解是@SpringBootConfiguration和@EnableAutoConfiguration。第一個支持代表當前類至關因而一個配置文件,第二個註解代表當前應用程序支持自動配置,即容許SpringBoot來提供對web應用的配置。這裏就要注意了,咱們說SpringBoot看不到配置文件,不是真的就沒有配置文件了,而是SpringBoot幫咱們完成了配置。ide

2.核心配置spring-boot

        既然SpringBoot幫咱們完成了配置,那麼,當前配置若是咱們不滿意,能不能修改呢?當時是能夠的。源碼分析

        在resource下建立application.properties,好比爲了修改默認端口8080,咱們輸入這樣的內容:server.port=9090idea

        再次啓動項目,就能夠看到端口位置被修改了。server

        還有一些經常使用的配置項,logging.level.org.springframework,配置爲,開發

        logging.level.org.springframework=DEBUGget

        就能夠在控制檯看到DEBUG信息。

        更多的屬性,能夠查看idea給咱們的智能感知,

3.源碼分析

        有同窗可能會進一步問,那麼,到底SpringBoot的核心配置是怎麼加載 呢?這個時候,咱們只能經過進一步的源碼分析獲得了。

        Spring的入口類是SpringApplication的class,在其構造器中,有這樣一個方法,叫作getSpringFactoriesInstances,

        查看代碼,追蹤到SpringFactoriesLoader,

        打開該類,就看到了一個常量,FACTORIES_RESOURCE_LOCATION,這個常量所定義的"META-INF/spring.factories"就是咱們所要知道的核心配置類了,

        找到它,打開它看看吧,能夠看到在這裏面定義的那些初始化器,

        試着打開一個咱們可能熟悉的初始化器ServerPortInfoApplicationContextInitializer,

        能夠看到,在這裏對server.ports進行了處理。

4.starter

        最後,再說一下starter。

        除了spring-boot-starter-parent和spring-boot-starter-web這兩個starter以外,還有其它的一些starter,咱們能夠在官方站點

        https://spring.io/projects/spring-boot/#learn

        查到所有的starter,

        隨着開發的深刻,咱們會使用愈來愈多的starter。

        感謝關注「碼農星球」。本文版權屬於「碼農星球」。咱們提供諮詢和培訓服務,關於本文有任何困惑,請關注並聯系咱們。

相關文章
相關標籤/搜索