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

参考文献:
定制自己的starter:http://www.jianshu.com/p/85460c1d835a 
配置详解:http://blog.csdn.net/yingxiake/article/details/51260302 
官方参考指南:http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config 
多数据源的配置:http://www.cnblogs.com/shenlanzhizun/p/5846475.html

SpringBoot前世今生的更多相关文章

  1. SpringBoot配置属性之Server

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  2. SpringBoot配置属性转载地址

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  3. SpringBoot配置属性之其他

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  4. SpringBoot配置属性之Migration

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  5. SpringBoot配置属性之Security

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  6. SpringBoot配置属性之MQ

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  7. SpringBoot配置属性之NOSQL

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  8. SpringBoot配置属性之MVC

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  9. java 与大数据学习较好的网站

    C# C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!https://www.cnblogs.com/doforfuture/p/6293926.html ...

随机推荐

  1. jsp上传图片实时显示

    jsp代码 <div class="form-group" id="caseIma"> <label class="control- ...

  2. postman 测试API - token

    1.使用全局变量保存token 2.再调用 参考文章 http://www.jianshu.com/p/13c8017bb5c8 https://testerhome.com/topics/6555

  3. widows和Linux java加密注意事项

    /** * @Title: EncrypAES.java * @Package com.weidinghuo.payment.util * @Description: TODO(用一句话描述该文件做什 ...

  4. Swift_提醒框

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 24.0px Menlo; color: #ffffff } p.p2 { margin: 0.0px 0. ...

  5. Python之路【第二十四篇】Python算法排序一

    什么是算法 1.什么是算法 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出.简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果. ...

  6. C#设置输入框只输入数字

    为输入框添加keyPress事件,然后添加代码: || e.KeyChar > ) && e.KeyChar != && e.KeyChar != &&a ...

  7. Redhat6.4下安装Oracle10g

    Oracle10g_Redhat6.4 安装指南 文档说明 本文借鉴<Redhat_Linux_6.4下Oracle_10g安装配置手册><Redhat 6.4 安装 Oracle1 ...

  8. new Array(n) 的坑 密集数组和稀疏数组

    今天写Vue时遇到一个奇怪问题,需要监控网页上的input 是否都有值 // var blanks = new Array(number); // blanks的监控属性 var emptyNumbe ...

  9. s:if 判断

    判断 ArrayList size 是否为0 <s:if test="list.size==0"> <s:if> <s:else> </s ...

  10. python中不同包之间调用方法、

    在pycharm中... 当两个py文件在同一个文件夹下的时候.直接from 文件名 import *  即可 当两个文件在不同的文件夹下的时候.需要在文件中加入 _init_.py 文件.里面可以什 ...