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