01-Summary
- Spring是分层的全栈式的轻量级开发框架,IOC和AOP为核心
- Spring官网
- 版本情况
1. 优势
- 方便解耦,简化开发
- Spring通过容器,将对象创建从代码中剥离出来,进行控制
- 避免直接编码造成模块之间耦合度高,不必自己编码处理对象的单例和多例控制,主要关注接口功能即可,不用关注具体使用哪个实现类和实现细节问题
- AOP切面编程
- 程序设计的一种概念,Spring对该概念实现的比较好,通过切面编程可以在不修改原代码的情况下实现功能的增加
- 通常用于事务控制、日志记录、性能检测、权限控制等等
- 声明式事务
- 事务控制可以托管给Spring,通过注解或者配置文件声明事务即可,不用自己编码处理
- 整合Junit,方便测试
- Spring整合Junit单元测试,对于项目功能可以进行轻松快速测试,便于调试程序
- 整合各种优秀框架
- SSM => Spring + SpringMVC + MyBatis
- SSH => Spring + Hibernate + Struts
- 丰富的功能封装
- 对JavaEE(JDBC、JavaMail)都进行了一系列的封装,简化我们对于API的使用,提高程序开发效率
- 规范的源码学习样本
- 源码设计巧妙,结构清晰,大量使用设计模式,是java代码规范编写的典范,也是高级程序员面试中经常会问到的源码
2. 体系结构
1. Data_Access/Integration
数据访问/集成
- JDBC模块:提供了JDBC的抽象层,大幅度减少了开发过程中对数据库操作的编码
- ORM模块:对流行的对象关系映射API,包括JPA、JDO、Hibernate、iBatis提供了集成层
- OXM模块:提供了一个支持对象XML映射的抽象层实现。eg:JAXB、Castor、XMLBeans、JiBX、XStream
- JMS模块:指Java消息服务,包含的功能为生产和消费的信息
- Transactions模块:支持编程和声明式事务管理
2. Web
包括Web、Servlet、Struts、Portlet组件
- Web模块:提供了基本Web开发集成特性。eg:多文件上传功能、Servlet监听器、IOC容器初始化、Web应用上下文
- Servlet模块:包括Spring模型—视图—控制器(MVC)实现Web应用程序
- Struts模块:包含支持类内的Spring应用程序,集成了经典的Struts_Web层
- Portlet模块:提供了在Portlet环境中使用MVC,类似Web-Servlet模块功能
3. Core_Container
核心容器是其他模块建立的基础,Beans、Core、Context、Expression_Language模块组成
- Beans:提供了BeanFactory,是工厂模式的经典实现,Spring将管理对象称为Bean
- Core核心模块:提供了Spring框架的基本组成部分,包括IOC和DI功能
- Context上下文模块:建立在Core和Beans模块的基础之上,它是访问定义和配置任何对象的媒介。ApplicationContext接口是上下文模块的焦点
- Expression_Language模块:运行时查询和操作对象的强大的表达式语言
4. 其他模块
- AOP:提供了面向切面编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以降低耦合性
- Aspects:提供与AspectJ的集成,是一个功能强大且成熟的面向切面编程(AOP)框架
- Instrumentation:提供了类工具的支持和类加载器的实现,可以在特定的应用服务器中使用
- Test:支持Spring组件使用JUnit、TestNG