美文网首页
大话Spring Framework发展史

大话Spring Framework发展史

作者: 程就人生 | 来源:发表于2020-06-09 20:40 被阅读0次

    前言
    Spring框架,距今已经走过了十几个年头,是目前最受欢迎的企业级 Java 应用程序开发框架;当然,Spring已不再是简单的一个框架了,由此开发出的还有Spring Boot、Spring Cloud、Spring Data、Spring Security等一系列基于Spring Framework的项目。

    作为一名Java程序员,在面试时,Spring Framework是技术面试必须经过的一道门槛,如果还有谁不知道Spring Framework是个啥,估计要被人耻笑三分了。今天不说技术,单纯地捋一把Spring Framework的发展史。

    背景
    话说Spring框架,不得不提它产生的技术背景。在Spring技术之前,J2EE兴起,使用过J2EE的程序员都知道,J2EE的学习成本极高,开发速度慢,开发出来的程序性能消耗也高,已经跟不上当时应用程序的需要了。

    在2002年,Rod Johnson(一位音乐博士)撰写了一本名为《Expert One-on-One J2EE设计和开发》的书,在该书中,主要概括了当时Java企业应用程序开发的现状,指出了JavaEE和EJB框架的缺陷,并且基于普通Java类和依赖注入的思想提出来一个更为简单的解决方案,这就是Spring框架核心思想的萌芽。

    Spring 1.0
    有了核心理念还不够,Rod Johnson博士说干就干;于2003年6月,在Apache 2.0 许可证下发布了0.9版本,并于2004年3月发布了1.0版本。

    在Spring1.0版本中,源码只有一个包,该包中包含了AOP、BEANS、CONTEXT、CORE、JDBC、ORM等,并且仅支持XML配置的方式。

    Spring 2.X
    2006年10 月,Spring2.0发布,增加了对注解的支持,实现了基于注解的配置;

    2007年11月,发布Spring2.5,新增的特性如下:

    • 添加可扩展的XML配置功能,用于简化XML配置;
    • 支持JDK5;
    • 添加额外的IOC容器扩展点,支持动态语言(如Groovy,AOP增强功能和新的Bean范围 );

    Spring 3.0
    2009年12月,Spring3.0发布,新增的特性如下:

    • 模块重组系统;
    • 支持Spring表达式语言(Spring Expression Language,SpEL);
    • 基于Java的Bean配置(JavaConfig);
    • 支持嵌入式数据库:HSQL、H2等;
    • 支持REST;
    • 支持JDK6;

    *Spring 4.0
    2013年12月,发布Spring4.0,新增的特性如下:

    • 全面支持Java8
      • 支持Lambda表达式;
      • 支持Java8的时间和日期API;
      • 支持重复注解;
      • 支持Java8的Optional;
    • 核心容器增强
      • 增加泛型依赖注入;
      • 增加Map依赖注入;
      • 增加List依赖注入;
      • 支持lazy注解配置懒加载;
      • 支持Condition条件注解;
      • CGLIB动态代理增强;
    • 支持基于GroovyDSL定义Bean
    • Web增强
      • 增强SpringMVC,基于Servlet3.0开发;
      • 提供RestController注解;
      • 提供AsyncRestTemplate支持客户端的异步无阻塞请求;
    • 增加对WebSocket的支持;

    Spring5.0
    2017年9月,Spring5.0发布,其新增特性如下:

    • 升级到Java8、JavaEE7
      • 废弃低版本,将Java8、JavaEE 7作为最低版本要求;
      • 兼容Java9;
      • 兼容JavaEE8;
    • 反应式编程模型,增加WebFlux模块;
    • 升级SpringMVC,增加对最新的API(Jackson等)的支持;
    • 增加函数式编程模式;
    • 重构源码,部分功能使用Lambda表达式实现;

    参考资料:
    https://blog.csdn.net/jlh912008548/article/details/83241513
    https://www.w3cschool.cn/wkspring/pesy1icl.html
    https://docs.spring.io/spring/docs/5.0.17.RELEASE/spring-framework-reference/overview.html#overview-history
    https://baike.baidu.com/item/spring框架/2853288?fr=aladdin
    https://www.liaoxuefeng.com/wiki/1252599548343744/1266263217140032

    相关文章

      网友评论

          本文标题:大话Spring Framework发展史

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