栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

3-Spring架构源码分析-spring体系

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

3-Spring架构源码分析-spring体系

Spring体系

8大模块讲解

数据处理模块(DataAccess/Integration)、Web模块、AOP(Aspect OrientedProgramming)模块、Aspects模块、Instrumentation模块、Messaging模块、Core Container模块和Test模块。

  1. 数据处理模块(Data Access)该模块由JDBC、Transactions、ORM、OXM和JMS等模块组成。
  • JDBC模块提供了不需要编写冗长的JDBC代码和解析数据库厂商特有的错误代码的JDBC-抽象层。

  • Transactions模块支持编程和声明式事务管理。

  • ORM模块提供了流行的Object-Relational Mapping(对象-关系映射)API集成层,包含JPA、JDO和Hibernate等ORM框架。Spring对ORM的支持和封装主要体现在三方面:一致的异常处理体系结构,对第三方ORM框架抛出的专有异常进行了包装;一致的DAO抽象的支持,为每个框架都提供了模板类来简化和封装常用操作,例如 JdbcSupport、HibernateTemplate等;Spring的事务管理机制,为所有数据访问都提供了一致的事务管理。

  • OXM模块提供抽象层,用于支持Object/XML mapping(对象/XML映射)的实现,例如JAXB、Castor、XMLBeans、JiBX和XStream等。

  • JMS模块(Java Messaging Service)包含生产和消费信息的功能。

  1. web模块
  • Web模块提供了面向Web开发的集成功能。
  • WebSocket模块提供了面向WebSocket开发的集成功能。
  • Servlet 模块(也被称为SpringMVC 模块)包含 Spring 的Model-View-Controller(模型-视图-控制器,简称MVC)和REST Web Services实现的Web应用程序。Spring MVC框架使Domain Model(领域模型)代码和Web Form(网页)代码实现了完全分离,并且集成了Spring Framework的所有功能。
  • Portlet模块(也被称为Portlet MVC 模块)是基于Web和Servlet模块的MVC实现。Portlet和Servlet的最大区别是对请求的处理分为Action阶段和Render阶段。在处理一次 HTTP请求时,在 Action阶段处理业务逻辑响应并且当前逻辑处理只被执行一次;而在Render阶段随着业务的定制,当前处理逻辑会被执行多次,这样就保证了业务系统在处理同一个业务逻辑时能够进行定制性响应页面模版渲染。
  1. AOP模块

    该模块是Spring的代理模块,也是Spring的核心模块,它巧妙地利用了JVM动态代理和CGLIB动态代理面向过程编程,来实现业务零侵入、低耦合的效果。

  2. Aspects模块

    该模块提供了与 AspectJ(一个功能强大并且成熟的面向切面编程的框架)的集成,它扩展了Java语言,定义了 AOP语法(俗称织入点语法),持有一个专门的编译器来生成遵守Java字节编码规范的Class文件,使用字节码生成技术来实现代理。

  3. Instrumentation模块该模块是 Spring 对其他容器的集成及对类加载器的扩展实现,其子模块 spring-instr ument-tomcat实现了TomcatInstrumentation代理功能。

  4. Messaging模块该模块是从Spring集成项目(例如 Message、MessageChannel、MessageHandler及其他基于消息应用的基础模块)中抽象出来的,类似于基于注解的Spring MVC编程模块,包含一系列消息与方法的映射注解。

  5. Core Container模块该模块(也叫Spring核心容器模块)是Spring的根基,由Beans、Core、Context、SpEL四个子模块组成,这四个子模块如下所述。

    • Beans模块和Core模块提供框架的基础部分,包含IoC(Inversion of Control,控制反转)和 DI(DependencyInjection,依赖注入)功能
    • Context(包含 Spring-Context和 Spring-Context-Support两个子模块)模块建立在Core模块和 Beans模块的坚实基础之上,并且集成了 Beans模块的特征,增加了对国际化的支持,也支持Java EE特征。
    • SpEL模块(Spring-Expression Language)提供了强大的表达式语言来查询和操作运行时的对象。
  6. Test模块该模块支持通过组合JUnit或TestNG来进行单元测试和集成测试,并且提供了Mock Object(模仿对象)方式进行测试。

Spring的领域模型

Spring的领域模型有三种,如下所述。

(1)容器领域模型(Context模型):也叫作上下文模型,是Spring的掌控域,对 Spring核心领域模型进行生命周期管理。也可以将其称为Spring的服务域,因为它为整个应用服务。

(2)核心领域模型(Bean模型):体现了 Spring的一个核心理念,即“一切皆 Bean,Bean即一切”。Bean是应用运行时可执行的最小函数式单元,可以是一个属性单元,也可以是 Java 中的一个函数对象,更倾向于一种对象式的为某种特殊行为而生的可复用的概念,不受职责或者大小的限制。

(3)代理领域模型(Advisor模型):Spring代理的执行依赖于Bean模型,但是Spring代理的生成、执行及选择都依赖于Spring自身定义的 Advisor模型,只有符合 Advisor模型的定义,才能生成Spring代理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028269.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号