Spring Boot參考教程(二)SpringBoot特性
2. Spring Boot特性
1. Starter pom(起步依賴)
Spring提供了一系列的starterpom來簡化Maven的依賴加載,具體可參考官方文檔13.5 Starters章節。
什麽是Starterpom,以上文中HelloWorld工程為示例:
在工程的pom中只有三個依賴:
其中:spring-boot-starter-web為Spring web項目所需依賴,使用了此依賴後會自動加入以下依賴:
由上圖中依賴樹可以看出,只需加入一個web starter pom就會自動引入一般Spring web工程中需要的相關依賴。簡單方便。Spring提供多種starter pom供選擇。
簡單來說,starter pom是組合在一起實現某個功能的一組依賴的集合。好處不言而喻!
2. 獨立運行,內嵌Servlet容器
SpringBoot的一個很大的特性是可以獨立運行,既可以直接以Java-jar的方式運行,不需要依賴Servlet容器。因為其提供內嵌的Servlet容器。
上1中三個依賴中有一個為spring-boot-starter-tomcat此依賴為工程提供內嵌的Servlet容器tomcat,此外還可以使用Jetty, Undertow等作為內嵌容器。
上文中Hello World工程在創建選項中選擇的打包方式為War,因此spring-boot-starter-tomcat依賴的Scope屬性為provide。開發人員本地啟動依然是使用的內嵌容器。
測試以jar方式啟動:
1. 修改打包方式為jar,刪除spring-boot-starter-tomcat的scope屬性。
2. 打包(將工程環境改為JDK)
3. 啟動jar包
啟動成功
4. 測試訪問
測試成功!
3. 自動裝配
由上Hello world中可以看出,並沒有進行任何的手工配置來初始化相關的Bean如:jacksonObjectMapper,dispatcherServlet,beanNameViewResolver,resourceHandlerMapping等等。
工程中所有一般web應用中需要用到的Bean均由Spring Boot來自動初始化。
查看(查看方法後面章節詳細描述)所有初始化的Bean:
註:Spring Boot會根據工程類路徑中的jar包,類,配置文件中的相關配置等條件,來自動配置Bean,比如:若類路徑中有mybatis和Oracle的驅動包,SpringBoot會自動配置mybatis的數據源工廠等Bean。Spring Boot的自動裝配主要通過條件化配置和註解來實現,這是SpringBoot的神奇之處。
簡單來說,你需要什麽功能,加入相關的依賴,只要你的依賴jar包滿足條件,SpringBoot就會自動為你初始化配置相關Bean。
如果還沒有明白什麽是自動裝配的話,可參考相關文檔,隨著對Spring Boot了解的逐漸深入,你將會有深刻的體驗!
4. 提供應用內部監控(Actuator)
在Spring工程中我們無法監控到應用的內部運行情況,如Bean的生命周期,應用的健康情況等。
為解決這個問題,Spring Boot提供了執行器Actuator,來對應用內部進行監控。
具體下一章節將詳細講述。
<實例代碼>
Github:https://github.com/chunyuding/SpringBoot-Demo
https://github.com/chunyuding/SpringBoot-Demo.git
碼雲:https://gitee.com/dingchunyu/SpringBoot-Demo
https://gitee.com/dingchunyu/SpringBoot-Demo.git
<推薦書籍>
百度雲:http://pan.baidu.com/s/1qYA0Nxi
Spring Boot參考教程(二)SpringBoot特性