1、spring history

  • spring起点
    2002年10月,Rod Johnson 写了一本名为Expert One-on-One J2EE设计和开发的书。本书由Wrox发布,涵盖了当时Java企业应用程序开发的状态,并指出了Java EE和EJB组件框架的一些主要缺陷。在书中他提出了一个基于普通java类(POJO - 普通旧java对象)和依赖注入的简单解决方案
    在本书中,他展示了如何在不使用EJB的情况下构建高质量,可扩展的在线座位预订应用程序。为了构建应用程序,他编写了超过30,000行基础设施代码!它包括许多可重用的java接口和类,如ApplicationContext和BeanFactory。由于java接口是依赖注入的基本构建块,因此将类的根包命名为com.interface21。正如Rod自己后来解释的那样,21中的名字是21世纪的参考
  • spring诞生
    书发布后不久,开发人员Juergen Hoeller和Yann Caroff说服Rod Johnson根据基础设施代码创建一个开源项目。Rod,Juergen和Yann 在2003年2月左右开始合作这个项目。正是Yann为新框架创造了“spring”这个名字。根据Rod的说法,Spring在传统J2EE的“冬天”之后代表了一个新的开始
    2003年6月,在Apache 2.0许可下发布了0.9版。2004年3月,spring1.0发布。有趣的是,即使在1.0发布之前,Spring也被开发人员广泛采用。
  • spring框架的快速增长
    Spring框架的迅速发展自2004年春季2.0 1.0版本在2006年10月到那个时候春天下载冲过100万大关被释放。Spring 2.0具有可扩展XML配置等功能,用于简化XML配置,支持Java 5,附加IoC容器扩展点,支持动态语言,如groovy,aop增强功能和新的bean范围。

  • 在Rod的领导下管理弹簧项目的Interface21公司于2007年11月更名为SpringSource。同时Spring 2.5发布。Spring 2.5的主要新功能包括对Java 6 / Java EE 5的支持,对注释配置的支持,类路径中的组件自动检测以及符合OSGi的捆绑包。

  • 2007年,SpringSource从基准资本获得了A系列资金(1000万美元)。SpringSource通过来自accel合作伙伴和基准的B系列资金在2008年筹集了额外资金。SpringSource在此期间收购了许多公司(Covalent,Hyperic,G2One等)。2009年8月,SpringSource以4.2亿美元被VMWare收购!几周之内,SpringSource收购了云代工厂,这是一家云PaaS提供商。2015年,云代工厂被转移到非营利性的云代工基金会。

  • 2009年12月,春季3.0发布。Spring 3.0具有许多主要功能,例如重组模块系统,支持spring表达式语言,基于java的bean配置(JavaConfig),支持嵌入式数据库(如HSQL,H2和Derby),模型验证/ REST支持以及对Java EE的支持6。

  • 2011年和2012年发布了许多次要版本的3.x系列。2012年7月,Rod Johnson离开了春季团队。2013年4月,VMware和EMC与GE合作创建了一家名为Pivotal的合资企业。所有春季应用项目都转移到了Pivotal。

  • 2013年12月,Pivotal宣布发布spring framework 4.0。Spring 4.0是Spring框架的重要一步,它包括完全支持Java 8,更高的第三方库依赖(groovy 1.8 +,ehcache 2.1 +,hibernate 3.6+等),Java EE 7支持,groovy DSL等功能。 bean定义,对websockets的支持以及对泛型类型的支持,作为注入bean的限定符。

  • 2014年至2017年期间发布了许多春季框架4.xx版本。当前的spring框架版本(4.3.7)于2017年3月发布.Spring framework 4.3.8计划于2017年4月发布,它将是4.x系列中的最后一个。

2017年spring发布了spring5.0版本

2、spring设计哲学

面向对象 思想里 "万物皆对象" Spring里面 "万物皆Bean"。
Spring遵循的一个宗旨:一切皆为Bean 你可以把 Spring 比作一个 "超级工厂" 里面任何Bean 都可以生产。当然里面的IOC容器 是这个超级工厂的 "核心" 所有从Bean都出自这里,我们只要给了 这个工厂 的 "生产说明" 或者说是 "生产清单" (applicationContext.xml),IOC容器就可以生产处我们想要的 Bean。所谓的AOP(面向切面编程)你可以理解为 "横插一杠",因为 这里的 Bean 是 IOC 容器生产的,所以IOC在生产它的时候可以改变它的行为,比如 一个 Bean A要做 发送邮件这个行为,但是我在 "生产说明" 中规定 这个Bean 在做发送邮件这个行为之前,还有一个Bean L要做记录日志行为,所以当这个Bean要发送邮件的时候,先让L 记录日志,然后才是B发送邮件。其实AOP就是在原有的执行顺序中切入一个新的行为。

参考链接

https://www.cnblogs.com/ArtsCrafts/p/Spring.html

https://www.quickprogrammingtips.com/spring-boot/history-of-spring-framework-and-spring-boot.html

Spring History和spring设计哲学的更多相关文章

  1. Spring系列(零) Spring Framework 文档中文翻译

    Spring 框架文档(核心篇1和2) Version 5.1.3.RELEASE 最新的, 更新的笔记, 支持的版本和其他主题,独立的发布版本等, 是在Github Wiki 项目维护的. 总览 历 ...

  2. spring history &design Philosophy

    Spring简介 Spring是一个开源框架,它由Rod Johnson创建.它是为了解决企业应用开发的复杂性而创建的.Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情.然而, ...

  3. spring事务管理器设计思想(二)

    上文见<spring事务管理器设计思想(一)> 对于第二个问题,涉及到事务的传播级别,定义如下: PROPAGATION_REQUIRED-- 如果当前没有事务,就新建一个事务.这是最常见 ...

  4. spring事务管理器设计思想(2)

    spring事务管理器设计思想(二) 上文见<spring事务管理器设计思想(一)> 对于第二个问题,涉及到事务的传播级别,定义如下: PROPAGATION_REQUIRED-- 如果当 ...

  5. The History of spring

    Spring的出现  Spring最早出现对早期J2EE规范复杂性的回应 .虽然有些人一直认为Java EE和Spring处于竞争中,但Spring实际上是对Java EE的补充.Spring编程模型 ...

  6. Spring history&Design Philosophy 简单介绍~

    SPRING框架的介绍和历史 Spring Framework是一个开源Java应用程序框架,最初是基于依赖注入(DI)和控制反转(IoC)的原理开发的. Spring Framework已经成长为控 ...

  7. 跟vczh看实例学编译原理——一:Tinymoe的设计哲学

    自从<序>胡扯了快一个月之后,终于迎来了正片.之所以系列文章叫<看实例学编译原理>,是因为整个系列会通过带大家一步一步实现Tinymoe的过程,来介绍编译原理的一些知识点. 但 ...

  8. Spring MVC - 配置Spring MVC

    写在前面的话: 现在开始一段新的学习历程:Spring MVC.还是按照原来的三步走学习模式(what.why.how)进行讲解. 1.Spring MVC是什么(what) Spring MVC属于 ...

  9. Spring MVC 和 Spring 总结

    1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合. 2). AOP编程的 ...

随机推荐

  1. LGOJ3747 六省联考2017 分手是祝愿

    这两天遇到不少这种"人类智慧题"了,感觉都是很巧妙的 Description link 现在有 \(n\) 盏灯,设每一次操作控制第 \(i\) 占灯,而改变状态的灯就是 \(i\ ...

  2. 一个简单WebApp的全程

    开始前,我先给出上一篇选项卡的demo链接http://xqhuadou.com/demo1/index.html.相信看着应该很带感,不过这个是之前经过修改的. 制作过程我就不多说了,可以直接看源码 ...

  3. ES6之对象的语法糖

    本文介绍下ES6中对象的一些拓展功能. 这三个语法糖在实际的项目开发中经常会见到.

  4. 1)PHP基础介绍

    1.php基础介绍: Perssonal Home Page  ====>PHP 2.应用范围 · web服务器脚本语言 命令行脚本语言     应用程序图形界面 3.PHP运行环境 PHP解释 ...

  5. hdu2896&&3065

    题:http://acm.hdu.edu.cn/showproblem.php?pid=2896 分析:ac自动机模板 注意细节,1.128个ascii码都要: 2.只要关键码含有只输出一个编号就行 ...

  6. SpringBoot 1.5.x 集成 Quartz 任务调度框架

    Quartz 有分 内存方式 和 数据库方式 内存方式任务信息保存在内存中, 停机会丢失, 需手动重新执行, 数据库方式: 任务信息保存在数据库中, 重点是支持集群. 内存方式 RAMJobStore ...

  7. lower()|upper()|Traceback|title()|字符串合并|rstrip|lstrip|str()|

    print ("hello,world!") sentence = "yyyy" print (sentence.lower()) print (sentenc ...

  8. vue中axios的post请求使用form表单格式发送数据

    vue使用插件qs实现 (qs 是一个增加了一些安全性的查询字符串解析和序列化字符串的库.) 在jquery中的ajax的方法已将此封装,所以不需要再次序列化 1. 安装   在项目中使用命令行工具输 ...

  9. Mac中Apache常用命令

    Apache常用命令记录,还是记一下吧,总是忘记. Apache常用命令: # sudo apachectl start // 启动Apache服务 # sudo apachectl stop // ...

  10. centos6.9防火墙设置

    1.输入:cat /etc/issue   查看版本 2. service命令开启以及关闭防火墙为即时生效,下次重启机器的时候会自动复原. 查看防火墙状态:service iptables statu ...