spring-boot前世今生(簡單介紹)
序
本文主要講述spring boot的由來,即其它誕生的背景,初衷,現狀,及對未來的展望。
背景
在很早的年代,J2EE還是java企業級應用的王者規範,EJB風行其道。後來有一個叫Rod Johnson的音樂學博士,寫了本《Expert One on one J2EE without EJB》,發明了spring,創辦了interface21公司,給Java的企業級開發帶來了一陣春風。之後Spring勢如破竹,跟隨著網際網路的興起,佔據著Java領域輕量級開發的王者地位。隨著Java語言的發展,Spring也跟著推陳出新,比如Spring3支援了Java註解形式的配置,Spring4支援了java8,同時也推出了springboot。
初衷
推出springboot的初衷就是為了簡化spring的配置,使得開發中整合新功能時更快,簡化或減少相關的配置。
現狀
目前springboot最新的是1.3.2-SNAPSHOT版本。主要有如下功能:
-
自動配置(
auto-configuration
)
一項簡化配置的功能,比如在classpath中發現有spring security的jar包,則自動建立相關的bean等 -
starters(
簡化依賴
)
這個比較關鍵,方便spring去整合各類元件,比如redis、mongodb等等。-
core(
security、aop
) -
web(
web、websocket、ws、vaadin、rest、mobile
-
template(
freemarker、velocity、groovy templates、thymeleaf
) -
data(
jdbc、jpa、mongodb、redis、gemfire、solr、elasticsearch
) -
database(
h2、hsqldb、mysql、postgresql
) -
social(
facebook、linkedin、twitter
) -
io(
batch、integration、jms、amqp
) -
ops(
actuator、remote shell
)
-
-
CLI(
command-line interface
),支援groovy開發 -
Actuator(
對應用系統本身的自省功能
這個有點devops的味道,使得應用程式本身可以做到自省,比如檢視系統運行了多少執行緒,gc的情況,執行的基本引數等等
展望
隨著devops的興起,以及docker技術的普及,微服務在一定場合會越來越受歡迎。即使不說微服務,springboot這種可以直接內嵌web伺服器打成一個jar包的東東,也更符合devops的趨勢:打成個jar包,往伺服器上一扔,十分方便,外帶自身帶的actuator,把監控也給省了一大半,真正做到了可以把精力花在刀刃上。