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