什么是spring:

spring就是以IOC反转控制和AOP面向切面编程为内核,使用基本的JavaBean来完成以前由EJB完成的工作。

spring框架的优点:

(1)方便耦合,简化开发:spring就是一个大工厂,可以将所有创建的对象和依赖关系交给spring管理。

(2)AOP编程支持:spring提供面向切面的编程,可以方便的实现对程序进行权限拦截和运行监控等功能。

(3)声明式事务的支持:只需要配置就可以完成对事务的管理,无须手动编程。

(4)方便程序测试:spring对JUnit4支持,可以通过注解方便的测试spring程序。

(5)方便集成各种优秀框架:spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架的支持。

(6)降低JavaEE API的使用难度:spring为JavaEE中的一些API提供了封装,降低了这些API的使用难度。

spring的体系结构

(1)Core Container(核心容器):是其他去模块建立的基础,由Bean模块、Core核心模块、Context上下文模块、Expression Language表达式语言模块组成。

① Bean模块:提供了BeanFactory,spring将管理对象称为Bean。

② Core核心模块:提供spring框架的基本组成部分,包括IoC和DI功能。

③ Context上下文模块:建立在核心模块和Bean模块之上,是访问定义和 配置任何对象的媒介。ApplicationContext接口是上下文模块的焦点。

④ Expression Language模块:是运行时查询和操作对象图的强大的表达式

(2)Date Access/Integration(数据访问/集成):包括JDBC、ORM、OXM、JMS和Transaction模块。

① JDBC模块:提供了一个JDBC抽象层,减少了开发过程中对数据库操作

② ORM模块:对流行的对象关系映射API包括JPA、Hibernate等提供的集

③ Transaction事务模块:支持编程和声明式事务管理实现特殊接口类,并 对所有的POJO都适用。

(3)Web模块:包括web、servlet、struts和portlet组件。

① Web模块:提供了基本的web开发集成特性,例如:多文件上传功能、 使用的servlet 监听器的IoC容器初始化以及web应用上下文。

② Servlet模块:包括spring模型—视图—控制器(MVC)实现web应用

③ Struts模块:包括支持类内的spring应用程序,集成了经典的struts web

(4)其他层:包括AOP、Aspects、Instrumentation以及Test模块。

① AOP模块:提供面向切面的编程,允许定义方法拦截器和切入点,将代

② Test测试模块:支持_spring_组件,使用_JUnit_测试。