使用Java做Web應用開發(fā)已經(jīng)有近20年的歷史了,從最初的Servlet1.0一步步演化到現(xiàn)在如此多的框架,庫以及整個生態(tài)系統(tǒng)。經(jīng)過這么 長時間的發(fā)展,Java作為一個成熟的語言,也演化出了非常成熟的生態(tài)系統(tǒng),這也是許多公司采用Java作為主流的語言進行服務器端開發(fā)的原因,也是為什 么Java一直保持著非常活躍的用戶群。
最受Java開發(fā)者喜好的框架當屬Spring,Spring也成為了在Java EE開發(fā)中真正意義上的標準,但是隨著新技術(shù)的發(fā)展,腳本語言大行其道的時代(Node JS,Ruby,Groovy,Scala等),Java EE使用Spring逐漸變得笨重起來,大量的XML文件存在與項目中,繁瑣的配置,整合第三方框架的配置問題,低下的開發(fā)效率和部署效率等等問題。
這些問題在不斷的社區(qū)反饋下,Spring團隊也開發(fā)出了相應的框架:Spring Boot。Spring Boot可以說是至少近5年來Spring乃至整個Java社區(qū)最有影響力的項目之一,也被人看作是:Java EE開發(fā)的顛覆者(但是不是有點too young,too simple的感覺?。?。
(1) Spring Boot使編碼變簡單
(2) Spring Boot使配置變簡單
(3) Spring Boot使部署變簡單
(4) Spring Boot使監(jiān)控變簡單
(5) Spring的不足
準確的說,應該是親爹,但是。。。大家都懂的!
官方地址:http://projects.spring.io/spring-boot/
Spring Boot繼承了Spring的優(yōu)點,并新增了一些新功能和特性:
(1)SpringBoot是伴隨著Spring4.0誕生的,一經(jīng)推出,引起了巨大的反向;
(2)從字面理解,Boot是引導的意思,因此SpringBoot幫助開發(fā)者快速搭建Spring框架;
(3)SpringBoot幫助開發(fā)者快速啟動一個Web容器;
(4)SpringBoot繼承了原有Spring框架的優(yōu)秀基因;
(5)SpringBoot簡化了使用Spring的過程;
(6)Spring Boot為我們帶來了腳本語言開發(fā)的效率,但是Spring Boot并沒有讓我們意外的新技術(shù),都是Java EE開發(fā)者常見的額技術(shù)。
(1)遵循“習慣優(yōu)于配置”的原則,使用Spring Boot只需要很少的配置,大部分的時候我們直接使用默認的配置即可;
(2)項目快速搭建,可以無需配置的自動整合第三方的框架;
(3)可以完全不使用XML配置文件,只需要自動配置和Java Config;
(4)內(nèi)嵌Servlet容器,降低了對環(huán)境的要求,可以使用命令直接執(zhí)行項目,應用可用jar包執(zhí)行:java -jar;
(5)提供了starter POM, 能夠非常方便的進行包管理, 很大程度上減少了jar hell或者dependency hell;
(6)運行中應用狀態(tài)的監(jiān)控;
(7)對主流開發(fā)框架的無配置集成;
(8)與云計算的天然繼承;
(1)獨立運行的Spring項目
Spring Boot可以以jar包的形式進行獨立的運行,使用:java -jar xx.jar
就可以成功的運行項目,或者在應用項目的主程序中運行main函數(shù)即可;
(2)內(nèi)嵌的Servlet容器
內(nèi)嵌容器,使得我們可以執(zhí)行運行項目的主程序main函數(shù),是想項目的快速運行;
主程序代碼SpringbootDemoApplication.java
(3)提供starter簡化Manen配置
Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴,下邊是創(chuàng)建一個web項目中自動包含的依賴,使用的starter pom以來為:spring-boot-starter-web
Spring Boot官網(wǎng)還提供了很多的starter pom,請參考:
http://docs.spring.io/spring-boot/docs/1.4.1.RELEASE/reference/htmlsingle/#using-boot-starter
(4)自動配置Spring
Spring Boot會根據(jù)我們項目中類路徑的jar包/類,為jar包的類進行自動配置Bean,這樣一來就大大的簡化了我們的配置。當然,這只是Spring考慮到的大多數(shù)的使用場景,在一些特殊情況,我們還需要自定義自動配置;
(5)應用監(jiān)控
Spring Boot提供了基于http、ssh、telnet對運行時的項目進行監(jiān)控;這個聽起來是不是很炫酷!
示例:以SSH登錄為例
1、首先,添加starter pom依賴
2、運行項目,此時在控制臺中會出現(xiàn)SSH訪問的密碼:
3、使用SecureCRT登錄到我們的程序,端口為2000,用戶為user:
密碼就是剛才的shell access;
但是當我點擊連接的時候,出現(xiàn)錯誤:
顯然是SecureCRT的版本不支持,所以就放棄了這個,使用Git Bash:
剩下的事情,大家自己玩吧!
(6)無代碼生成和XML配置
Spring Boot神奇的地方不是借助于代碼生成來實現(xiàn)的,而是通過條件注解的方式來實現(xiàn)的,這也是Spring 4.x的新特性。
下邊使用的是IDEA快速搭建一個Spring Boot項目
(1)File—-New—New Project
(2)點擊Next填寫相應的信息
(3)點擊Next,選擇Dependencies,這里創(chuàng)建Web項目選擇—–Web:
(4)點擊Next,設(shè)置項目名稱,這里默認設(shè)置,點擊Next之后,項目等一下就創(chuàng)建好了
找到應用程序的主函數(shù),運行即可:
注意,在pom文件里的java版本這個要和你的機子上一致!我的是1.7,默認創(chuàng)建項目的時候位1.8: