Spring

Spring框架是一个创建并管理bean(类)的容器;使用反射技术来创建bean的实例,设计模式上使用工程模式(BeanFactory)。Spring容器默认按照单例的方式来创建bean,可以通过设置< bean>节点中的scope属性来设置为每次获取时创建不同的实例 <bean scope="prototype/>

1. Spring的体系结构组成?

Spring由核心容器(Core Container)、AOP(Aspect Oriented Programming)、数据访问及集成(Data Access/Integratioin)、Web、Test等模块组成。
核心容器:由spring-beans, spring-core, spring-context和spring-expression 4个模块组成。

  • spring-core:提供了框架的基本组成部分,包括控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI)功能。
  • spring-beans:提供了BeanFactory,是工厂模式的一个经典实现,Spring将管理对象称为Bean。
  • spring-context:给spring提供一个运行时环境,用以保存各个对象的状态。
  • spring-expression:spring表达式语言。

AOP模块

  • spring-aop:是 Spring 的另一个核心模块,提供了一个符合 AOP 要求的面向切面的编程实现。以动态代理技术为基础,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。
  • spring-aspects:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的AOP框架。

数据访问及集成

  • spring-jdbc:提供了一个JDBC的抽象层, 用于简化JDBC。主要是提供 JDBC 模板方式、 关系数据库对象化方式, 主要实现类是 JdbcTemplate、 SimpleJdbcTemplate。
  • spring-tx:事务控制,通过它的AOP配置,可以灵活的配置在任何一层,但是在很多的需求和应用,直接使用JDBC事务控制还是有其优势的。
  • spring-orm:对象关系映射,集成orm框架,主要集成Hibernate、Java Persistence API(JPA)和Java Data Object(JDO)用于资源管理、数据访问对象(DAO)的实现和事务策略。
  • spring-oxm:对象xml映射,OXM是Object to XML Mapping的缩写,例如:jaxb, castor xmlbeans,JiBx,XStream等。
  • spring-tx 模块:事务模块,支持用于实现特殊接口和所有POJO(普通Java对象)类的编程和声明式事务管理。

Web

  • spring-web:提供最基础的web支持,主要建立在核心容器上,通过Servlet或者Listener来初始化IOC容器,也包括一些与Web相关的支持。

  • spring-webmvc:实现了Spring MVC的Web应用

  • spring-websocket:Spring4.0以后新增的模块,实现双工异步通讯协议,实现了WebSocket和SocketJS,提供Socket通信和web端的推送功能。

Test

  • spring-test 模块主要为测试提供支持的,支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。

2. Spring有哪些优势?

  • 方便解耦,简化开发
    通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,降低了程序之间的耦合度。
  • AOP编程的支持
    通过 Spring 的 AOP 功能,方便进行面向切面的编程,实现了传统OOP不能实现的功能。
  • 声明式事务的支持
    通过声明式方式灵活的进行事务的管理,提高开发效率和质量。
  • 方便程序的测试
    可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
  • 方便集成各种优秀框架
    Spring 可以降低各种框架的使用难度,提供了对各种优秀框架(Struts、Hibernate、Quartz等)的直接支持。
  • 降低 JavaEE API 的使用难度
    Spring 对 JavaEE API(如 JDBC、JavaMail等)进行了封装,使这些 API 的使用难度大为降低。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容