本文主要讲述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. File 类

    File 类:文件和目录(文件夹)路径名的抽象表现形式. 方法 1.创建功能 public boolean createNewFile():创建文件 public boolean mkdir():创建 ...

  2. HTML5 Drop API

    转自:http://www.cnblogs.com/fsjohnhuang/p/3961066.html 一.前言    在HTML4的时代,各前端工程师为了实现拖拽功能可说是煞费苦心,初听HTML5 ...

  3. centos 7.0 安装nginx 1.117

    php官方下载地址 http://cn2.php.net/downloads.php

  4. ebay api接口开发基本步骤

    因公司项目需求,要进行ebay api开发,网上很多资料已过时,自己记录一下. 准备工作 一.注册账号 1开发者账号注册 https://developer.ebay.com/signin?retur ...

  5. 转→js数组遍历 千万不要使用for...in...

    看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...

  6. bootstrap Table 中给某一特定值设置table选中

    bootstrap Table 中给某一特定值设置table选中 需求: 如图所示:左边地图人员选定,右边表格相应选中. 功能代码: //表格和图标联动 function changeTableSel ...

  7. 最新 Eclipse IDE下的Spring框架配置及简单实例

    前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...

  8. linux下如何关闭防火墙?如何查看防火墙当前的状态

    从配置菜单关闭防火墙是不起作用的,索性在安装的时候就不要装防火墙查看防火墙状态:/etc/init.d/iptables status暂时关闭防火墙:/etc/init.d/iptables stop ...

  9. Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下

    uss_web如果没有左上角那个球,tomcat就识别不出来的. 1.进入项目目录,找到.project文件,打开. 2.找到...代码段,加入如下标签内容并保存: <nature>org ...

  10. <section> 标签

    最近正在学习html5,刚接触html5,感觉有点不适应,因为有一些标签改变了,特别是div, section article这三个标签,查了一些资料,也试着用html5和css3布局网页,稍微有点头 ...