当前位置: 首页 > news >正文

【Spring】体系结构

Spring框架至今集成了多个模块,这些模块分布在数据访问/集成(Data Access/Integration)、Web层、面向切面的编程(Aspect Oriented Programming,AOP)模块、植入(Instrumentation)模块、消息传输(Messaging)、核心容器(Core Container)和测试(Test)。
在这里插入图片描述

一、数据访问/集成

该层由JDBCORMOXMJMS(Java Messaging Service)和事务(Transactions,tx)模块组成:

  • Spring-jdbc模块:提供JDBC抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析。

  • Spring-orm模块:为对象关系映射(Object-Relational Mapping, ORM)API提供了一个集成层,支持JPAHibernate

  • Spring-oxm模块:提供了一个支持对象/XML映射的抽象层实现。

  • Spring-jms模块:Java消息传递服务,包含用于生产和使用消息的功能。Spring 4.1以后提供了与Spring-messaging模块的集成。

  • Spring-tx模块:支持用于实现特殊接口和所有POJO(普通Java对象)类的编程和声明式事务管理。

二、Web 层

Web层由Spring-webSpring-webmvc(也称为Web-Servlet模块)、Spring-websocketPortlet模块组成:

  • Spring-web模块:提供基本的Web开发集成功能,例如多文件上传功能、使用Servlet监听器初始化一个IoC容器以及Web应用上下文。

  • Spring-webmvc模块:包含用于Web应用程序的 Spring MVCREST Web Services实现。

  • Spring-websocket模块:Spring 4.0以后新增的模块,提供了WebSocketSockJS的实现。

  • Portlet模块:类似于Servlet模块的功能,提供了Portlet环境下的MVC实现。

三、AOP 和 植入

  • Spring-aop模块:提供符合AOP要求的面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,实现解耦。

  • Spring-aspects模块:可以与AspectJ集成。AspectJ是一个强大且成熟的面向切面编程(AOP)框架,用于帮助开发者更好地管理代码中的横切关注点。

  • Spring-instrument模块:提供类植入支持和类加载器的实现,可以在特定的应用服务器中使用。

四、消息模块

Spring 4.0新增了消息(Spring-messaging)模块,该模块提供了对消息传递体系结构和协议的支持。

五、核心容器

Spring的核心容器是其他模块的基础,其包含:

  • Spring-core模块:提供控制反转(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)等基础组成部分。

  • Spring-beans模块:提供BeanFactory(工厂模式的经典实现),Spring将管理对象称为Bean

  • Spring-context模块:建立在Spring-core模块和Spring-beans的基础之上,提供一个框架式的对象访问方式,作为访问定义和配置的任何对象的媒介ApplicationContext接口是该模块的焦点。

  • Spring-context-support模块:支持整合第三方库到Spring应用程序上下文。

  • Spring-expression模块:提供强大的表达式语言去支持运行时查询和操作对象图。

六、测试

Spring-test模块支持使用JUnitTestNGSpring组件进行单元测试和集成测试。


http://www.mrgr.cn/news/67069.html

相关文章:

  • 视频编辑学习笔记
  • ubuntu如何卸载colmap
  • 达梦数据守护集群_动态增加实时备库
  • 数据结构算法篇--递归(c语言版)
  • 【Melty是一款开源的AI编程助手,基于codellama,媲美cusor】
  • 实现Vue3/Nuxt3 预览excel文件
  • 应急车道占用检测算法的技术方案与应用
  • OAuth2.0登录认证
  • 【猎顿英语】新东方or猎顿哪家强?哪个才是BEC备考的最佳选择?
  • Cobalt Strike 4.8 用户指南-第七节后渗透(2)
  • CqEngine添加联合索引和复合唯一索引
  • 代码随想录算法训练营第三十八天|Day38 动态规划
  • 继承机制深度解析:从基础到进阶的完整指南
  • 鸿蒙-promptAction.showToast基于PC屏幕底部提示
  • 华为搬迁,集体飞升
  • opencv保姆级讲解-guI和pymsql实现人脸识别打卡(6)
  • spring-boot(热部署)
  • 风力发电并网系统的相关控制策略
  • Android13 系统/用户证书安装相关分析总结(三) 增加安装系统证书的接口遇到的问题和坑
  • 将Beyond Compare添加到右键菜单中
  • 开车去内蒙古旅游要做什么准备?
  • Python 自动化脚本集合:开源免费、跨平台、助你告别重复劳动、高效便捷完成各种任务!
  • CentOS 9 Stream 上安装 PostgreSQL 16
  • 基于YOLO11/v10/v8/v5深度学习的老鼠智能检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
  • 中酱:健康生活的先行者
  • 优选算法第五讲:位运算模块