本文主要講述spring boot的由來,即其它誕生的背景,初衷,現狀,及對將來的展望。java
在很早的年代,J2EE仍是java企業級應用的王者規範,EJB風行其道。後來有一個叫Rod Johnson的音樂學博士,寫了本《Expert One on one J2EE without EJB》,發明了spring,創辦了interface21公司,給Java的企業級開發帶來了一陣春風。以後Spring勢如破竹,跟隨着互聯網的興起,佔據着Java領域輕量級開發的王者地位。隨着Java語言的發展,Spring也跟着推陳出新,好比Spring3支持了Java註解形式的配置,Spring4支持了java8,同時也推出了springboot。mysql
推出springboot的初衷就是爲了簡化spring的配置,使得開發中集成新功能時更快,簡化或減小相關的配置。web
目前springboot最新的是1.3.2-SNAPSHOT版本。主要有以下功能:redis
自動配置(auto-configuration
)
一項簡化配置的功能,好比在classpath中發現有spring security的jar包,則自動建立相關的bean等spring
starters(簡化依賴
)
這個比較關鍵,方便spring去集成各種組件,好比redis、mongodb等等。sql
core(security、aop
)mongodb
web(web、websocket、ws、vaadin、rest、mobile
)docker
template(freemarker、velocity、groovy templates、thymeleaf
)shell
data(jdbc、jpa、mongodb、redis、gemfire、solr、elasticsearch
)springboot
database(h二、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,把監控也給省了一大半,真正作到了能夠把精力花在刀刃上。