美文网首页springboot学习
springmvc迁移springboot之路1

springmvc迁移springboot之路1

作者: 黄信俊 | 来源:发表于2017-08-18 23:07 被阅读2994次

    1序

    伴随着springmvc的使用,对复杂的部署流程、各种服务的集成、服务之间的影响、配置文件的编写都是耗时耗力的体力活,因此spring开源组织诞生了springboot。

    本文主要讲述spring boot的由来,即其它诞生的背景,初衷,现状,及对未来的展望。

    2背景

    在很早的年代,J2EE还是java企业级应用的王者规范,EJB风行其道。后来有一个叫Rod Johnson的音乐学博士,写了本《Expert One on one J2EE

    without EJB》,发明了spring,创办了interface21公司,给Java的企业级开发带来了一阵春风。之后Spring势如破竹,跟随着互联网的兴起,占据着Java领域轻量级开发的王者地位。随着Java语言的发展,Spring也跟着推陈出新,比如Spring3支持了Java注解形式的配置,Spring4支持了java8,同时也推出了springboot。

    3初衷

    推出springboot的初衷就是为了简化spring的配置,使得开发中集成新功能时更快,简化或减少相关的配置。

    4理念

    springboot的理念是“习惯由于配置”,因为一般搭建springmvc的人都是各种各样的搬运服务搭建,时间长还繁琐,springboot提供了统一且默认的配置,让用户再无特别需求的情况下,默认配置都满足了开发需求,即默认配置都是大家开发中习惯的配置。

    5现状

    目前springboot最新的是1.4.0-SNAPSHOT版本。主要有如下功能:

    版本统一化、方便快速升级

    目前springboot内部自带了一套IOPLATFORM机制,可以实现jar包版本的统一化和今后的快速升级。

    某项目中编写的pom

    父节点中使用的POM

    大家可以发现版本控制都放在了springboot内置的父pom中进行管理了,引用的子项目无需关心每一种服务jar包的版本号和jar包之间的兼容性,把精力集中放在业务coding上。

    自动配置(auto-configuration)

    一项简化配置的功能,比如在classpath中发现有spring security的jar包,则自动创建相关的bean等。

    零配置

    spring4.x出现之后提倡使用java配置和注解配置组合,而springboot不需要任何xml配置即可实现spring的所有配置,所有的注入都依赖与条件注解的原理进行注入,这是spring4.x出现之后的新特性。

    starters(简化依赖)

    这个比较关键,方便spring去集成各类组件,比如redis、mongodb等等。

    core(security、aop)

    web(web、websocket、ws、vaadin、rest、mobile)

    template(freemarker、velocity、groovy templates、thymeleaf)

    webserver(tomcat、jetty、undertow),内嵌servlet容器,独立运行

    restful框架(jersey)

    data数据源异构(jdbc、jpa、mongodb、redis、gemfire、solr、elasticsearch、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的情况,运行的基本参数等等。

    样例:

    这是目前从资金通道平台线上获取的即时的具体指标监控,如下图

    经过在线json视图查看器格式化之后,展示的各项指标参数,清晰的了解线上系统的内存、CPU等各项指标情况,如下图:

    完善的社区,快速发展、快速集成

    6优缺点

    优点:

    1、快速构建项目

    2、对主流开发框架的无配置集成

    3、项目可独立运行,无需依赖外部的servlet容器

    4、提供运行时的监控

    5、极大地提高了开发、部署效率

    6、与云计算的天然集成

    缺点:

    1:官方还不支持mybatis,只支持原生的JDBC、HIBERNATE,但mybatis自己开发了集成,不好统一升级,暂时放弃。

    2:版本包支持的jar还有很多不足,项目有特殊情况的还需要特别引包或者自定义starter服务。

    3、学习资料较少且不够深入,建议看官方文档的更新,因为boot正在快速发展。

    7展望

    随着devops的兴起,以及docker技术的普及,微服务在一定场合会越来越受欢迎。即使不说微服务,springboot这种可以直接内嵌web服务器打成一个jar包的东东,也更符合devops的趋势:打成个jar包,往服务器上一扔,十分方便,外带自身带的actuator,把监控也给省了一大半,真正做到了可以把精力花在刀刃上。

    相关文章

      网友评论

        本文标题:springmvc迁移springboot之路1

        本文链接:https://www.haomeiwen.com/subject/fujzrxtx.html