Spring创建者
Spring概述
Spring 是指一个用于构造 JAVA 应用程序的轻量级框架
,轻量级并不意味着类数量很少,或者发行包大小很小,实际上,它指的是 Spring 哲学原理的总称:最少侵入
。
- 侵入式
要求业务代码”知道”框架的代码,表现为业务代码需要继承框架提供的类,才能很好的和框架结合,使用框架带来的便利。侵入式让业务代码产生对框架的依赖,这些代码不能再框架外使用,不利于代码的复用。但是侵入式可以使用户和框架更好的结合,更容易更充分的利用框架提供的功能。 - 非侵入式
不需要继承框架提供的类,而是通过配置完成依赖注入后,就可以使用。允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须继承或实现Spring框架的类和接口来达到使用框架的目的;允许所开发出来的应用系统能够在不同的环境中自由移植,不需要修改应用系统中的核心代码。
如何实现非侵入式:
- 引用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组件BeanFactory
- 配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入
Spring发展简史
版本历程
2004 年 03 月,1.0 版发布。
2006 年 10 月,2.0 版发布。
2007 年 11 月,更名为 SpringSource,同时发布了 Spring 2.5。
2009 年 12 月,Spring 3.0 发布。
2013 年 12 月,Pivotal 宣布发布 Spring 框架 4.0。
2017 年 09 月,Spring 5.0 发布。
配置历程
- 第一阶段:XML配置
在Spring1.x时代,使用Spring满眼都是XML配置的Bean -> 需要频繁的在开发的类和配置文件之家切换。 - 第二阶段: 注解配置
在Spring2.x时代,随着JDK1.5带来的注解支持,Spring提供了声明Bean的注解(@Component,@Service) ,大大减少了配置量。在Spring圈子存在的争论,注解配置和XML哪个更好?最终选择:应用的基本配置(数据库配置)用XML,业务配置用注解。 - 第三阶段:java配置
从Spring3.x到现在,Spring提供了java配置(@Configuration 和 @Bean)能力,Spring4.x和Spring Boot 都推荐Java配置,通篇使用Java配置。
Spring模块
- 核心容器(Core Container)
1.1 Core : 核心工具类,Spring其他模块大量的使用Core
1.2 Beans: Spring定义Bean的工具
1.3 Context: 运行时Spring容器
1.4 SpEl: 使用表达式语言在运行时查询和操作对象 - AOP(基于代理的AOP支持)
- Aspect(基于Aspect的AOP支持)
- Instrumentation
- Messaging(消息)
Spring-Messaging 对消息架构和协议的支持 - Data Access/Integration(数据访问/集成)
6.1 JDBC:提供以JDBC方式访问数据库的支持
6.2 TX(Transaction缩写):提供编程式事务和声明式事务
6.3 PRM 提供对象/关系映射技术
6.4 OXM 提供对象/XML映射关系
6.5 JMS 提供JMS支持 - Web()
7.1 web 提供基础的Web集成功能
7.2 portlet:提供portlet的支持
7.3 WebSocket:提供WebSocket的支持
7.4 servlet