Spring boot 淺談
Spring boot有很多優點,我們在談它的特性時一定是跟Spring的比較,下面先談談已經作為Java開發框架事實標準的Spring。
Spring誕生時是Java企業版的輕量級的替代品,無需開發重量級的EJB,Spring為企業級Java開發提供了一種相對簡單的方法。通過依賴注入和麵向切面程式設計,用簡單的Java物件(POJO) 實現了EJB的功能。
雖然Spring的元件程式碼是輕量級的,但它的配置卻是重量級的,一開始,Spring 用XML配置,而且是很多XML配置。Spring 2.5引入了基於註解的元件掃描,這消除了大量針對應用程式自身的顯示XML配置。Spring 3.0引入了基於Java的配置,這是一種型別安全的可重構配置方式,可以替代XML。
儘管如何,還是沒能逃脫配置的魔爪,開啟某些Spring特性的時候,比如事務管理和Spring MVC,還是需要XML或Java進行顯示配置。啟用第三方庫時也需要顯示配置,比如基於Thymeleaf的Web檢視。配置servlet和過濾器,同樣需要在web.xml或servlet初始化程式碼裡進行顯示配置。
所有這些配置都代表了開發時的損耗,因為在思考Spring特性配置和解決業務問題之間需要進行思維切換,所以寫配置佔用了大量時間。
不過,在Spring Boot出現之後,這一切成為了過去。
Spring Boot繼承了Spring的優點,並新增了一些新功能和特性:
(1)SpringBoot是伴隨著Spring4.0誕生的,一經推出,引起了巨大的反向;
(2)從字面理解,Boot是引導的意思,因此SpringBoot幫助開發者快速搭建Spring框架;
(3)SpringBoot幫助開發者快速啟動一個Web容器;
(4)SpringBoot繼承了原有Spring框架的優秀基因;
(5)SpringBoot簡化了使用Spring的過程;
(6)Spring Boot為我們帶來了指令碼語言開發的效率,但是Spring Boot並沒有讓我們意外的新技術,都是Java EE開發者常見的額技術。
Spring Boot主要特性
(1)遵循“約定優於配置”的原則,使用Spring Boot只需要很少的配置,大部分的時候我們直接使用預設的配置即可;
(2)專案快速搭建,可以無需配置的自動整合第三方的框架;
(3)可以完全不使用XML配置檔案,只需要自動配置和Java Config;
(4)內嵌Servlet容器,降低了對環境的要求,可以使用命令直接執行專案,應用可用jar包執行:java -jar;
(5)提供了starter POM, 能夠非常方便的進行包管理, 很大程度上減少了jar hell或者dependency hell;
(6)執行中應用狀態的監控;
(7)對主流開發框架的無配置整合;
(8)與雲端計算的天然繼承;
Spring Boot的核心功能
(1)獨立執行的Spring專案
Spring Boot可以以jar包的形式進行獨立的執行,使用:java -jar xx.jar
就可以成功的執行專案,或者在應用專案的主程式中執行main函式即可;
(2)內嵌的Servlet容器
內嵌容器,使得我們可以執行執行專案的主程式main函式,是想專案的快速執行;
(3)提供starter簡化Manen配置
Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴,下邊是建立一個web專案中自動包含的依賴,使用的starter pom以來為:spring-boot-starter-web
(4)自動配置Spring
Spring Boot會根據我們專案中類路徑的jar包/類,為jar包的類進行自動配置Bean,這樣一來就大大的簡化了我們的配置。當然,這只是Spring考慮到的大多數的使用場景,在一些特殊情況,我們還需要自定義自動配置;
(5)應用監控
Spring Boot提供了基於http、ssh、telnet對執行時的專案進行監控
關於如何快速搭建Spring Boot專案,請參考我的另一個部落格
http://blog.csdn.net/soldier_123/article/details/78966185
Spring Boot解決的問題
(1) Spring Boot使編碼變簡單
(2) Spring Boot使配置變簡單
(3) Spring Boot使部署變簡單
(4) Spring Boot使監控變簡單