SpringBoot前世此生

本文主要講述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,把監控也給省了一大半,真正作到了能夠把精力花在刀刃上。

相關文章
相關標籤/搜索