1. 程式人生 > >spring-boot前世今生(簡單介紹)

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,把監控也給省了一大半,真正做到了可以把精力花在刀刃上。