【项目实战】Spring体系结构与框架图

2023-05-16

一、Spring 体系结构

Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。

下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。

二、Spring框架图

Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。
在这里插入图片描述

三、Core Container (核心容器)

核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:

  • Core,核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
  • Bean,Bean模块提供 BeanFactory,它是一个工厂模式的复杂实现。
  • Context,上下文模块建立在由核心和 Bean 模块提供的坚实基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是上下文模块的重点。
  • SpEL,表达式语言模块在运行时提供了查询和操作一个对象图的强大的表达式语言。

四、Data Access/Integration(数据访问/集成)

数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块,它们的细节如下:

  • JDBC,JDBC模块提供了删除冗余的 JDBC 相关编码的 JDBC 抽象层。
  • ORM,ORM模块为流行的对象关系映射 API,包括 JPA,JDO,Hibernate 和 iBatis,提供了集成层。
  • OXM,OXM模块提供了抽象层,它支持对 JAXB,Castor,XMLBeans,JiBX 和 XStream 的对象/XML 映射实现。
  • JMS,Java 消息服务(JMS模块)包含生产和消费的信息的功能。
  • Transaction,事务模块为实现特殊接口的类及所有的 POJO 支持编程式和声明式事务管理。

五、Web(MVC/Remoting)Web 层

Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:
* Web模块提供了基本的面向 web 的集成功能,例如多个文件上传的功能和使用 servlet 监听器和面向 web 应用程序的上下文来初始化 IoC 容器。
* Web-MVC模块包含 Spring 的模型-视图-控制器(MVC),实现了 web 应用程序。
* Web-Socket模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。
* Web-Portlet模块提供了在 portlet 环境中实现 MVC,并且反映了 Web-Servlet 模块的功能。

六、其他

还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块,它们的细节如下:

  • AOP 模块提供了面向方面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,它实现了应该分离的功能。
  • Aspects 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。
  • Instrumentation 模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。
  • Messaging 模块为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息。
  • 测试模块支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【项目实战】Spring体系结构与框架图 的相关文章

随机推荐

  • Flutter-Docs-Development-User interface - Notes

    Flutter Docs Development User interface Notes Flutter Docs Development User interface https docs flutter dev development
  • Codelabs-Your First Flutter App - Notes

    Your First Flutter App Notes Codelabs Your first Flutter app https codelabs developers google com codelabs flutter codel
  • Flutter组件的所有细节All details about Flutter Widgets

    2 2 Introduction to Widgets 2 2 1 Concept of Widget In the previous introduction we know that almost all objects in Flut
  • ftp协议 -----服务器实现文件共享

    同一局域网建立ftp服务器实现文件共享 可以采用共享网络的方式实现在局域网中进行文件的传送 xff0c 也可以一台电脑上搭建ftp服务器实现 网上找了好多 xff0c 都是本机可以连接但是同一局域网中的其他用户就没有办法进行连接 xff0c
  • Linux shell 用for循环100次的方法

    前言 循环不管在程序中还是脚本中都需要经常用到 xff0c 在写shell脚本时 xff0c 经常需要for进行100次循环 这里谈谈几种从1到100的循环方法 四种方法 C语言风格 span class hljs keyword for
  • Android开发日志打卡APP(二)

    Android开发日志打卡APP xff08 二 xff09 文章目录 Android开发日志打卡APP xff08 二 xff09 前言开发过程一 背景和标题二 日志图标三 日志弹框 前言 在之前的文章中 xff0c 准备工作已经完成 x
  • 蓝牙模块HC05与HC06的连接

    在Win10环境下的HC05与HC06的连接介绍 用于电脑无法识别蓝牙情况下的曲线救国 xff0c 开始是失败的操作 曾在电脑管家尝试解决问题WIN 43 R services msc 发现无法解决问题 xff0c 于是找了一堆串口工具 x
  • 【开闭原则】

    开闭原则 xff08 Open Close Principle xff09 开闭原则就是说对扩展开放 xff0c 对修改关闭 在程序需要进行拓展的时候 xff0c 不能去修改原有的代码 xff0c 实现一个热插拔的效果 所以一句话概括就是
  • activity getIntent() 方法获取不到值的问题分析

    之前有同事小伙伴问我说 xff0c 他在activity里边调用getIntent 方法没有获取到应该传递过来的值 看了下他这个activity是single task属性的 xff0c 怀疑是由于activity的single task属
  • 解决git bash中无法粘贴的问题

    刚学git xff0c 在用git bash添加远程仓库的时候 xff0c 不能复制链接 xff0c 太浪费时间 xff0c 就网上搜了一下解决方法 xff0c 记录一下 步骤 xff1a 打开git bash在git bash中右键找到属
  • ubuntu的Files资源管理器打不开解决方案

    之前安装一个软件中途可能依赖包的问题导致安装失败之后就没管 后来发现Files打不开了 xff0c 查看计算机中的文件只能用命令行了 虽然也不影响啥 xff0c 但是想预览一些图片时就比较不方便 本来想用命令ps A grep nautil
  • Java中String的长度限制解析

    前言 话说Java中String是有长度限制的 xff0c 听到这里很多人不禁要问 xff0c String还有长度限制 xff1f 是的有 xff0c 而且在JVM编译中还有规范 xff0c 而且有的家人们在面试的时候也遇到了 xff0c
  • EFCore——三种关系的配置(9)

    关系的配置之一对多 一 关系配置的套路二 一对多1 创建实体2 实体配置3 迁移4 控制台进行数据操作5 关系依赖添加 二 一对一1 实体属性2 配置关系 三 多对多 一 关系配置的套路 EFCore中配置的套路 HasXXX WithXX
  • NetCore缓存——内存缓存(3)

    内存缓存 一 缓存数据类型二 缓存特性三 用法 一 缓存数据类型 缓存放到应用程序的内存中 内存缓存中保存的是一系列的键值对 就像Dictionary类型一样 二 缓存特性 内存缓存保存在当前运行的网站程序的内存中是和进程相关的 因为在we
  • 流程审批系统设计思路及实现方法

    背景 流程审批系统是一个很常见的系统 xff0c 包括我们在日常权限申请 xff0c 订单状态流转等很多场景都会接触 其核心的点有两个 xff1a 1 状态流转 2 流程驱动 我们以我们常见的流程审批为例 xff0c 比如我想向上街申请一台
  • 【问题】Ubuntu20.04桌面某些图标不显示

    问题 x1f631 xff1a 在桌面新建了test md xff0c 保存后关闭 桌面没有对应文件的图标 分析 x1f42f xff1a gnome shell问题 解决方案 x1f489 xff1a 重启gnome shell 按下al
  • 【python】连接远程服务器并传输文件,执行命令,传回文件

    使用Paramiko完成连接远程服务器并传输文件 执行命令 传回文件的功能 1 安装 pip install paramiko 2 config json nbsp nbsp file path home test test nbsp nb
  • centos7 安装GNOME 使用vnc连接

    1 xff1a 查看当前系统运行级别 命令 xff1a runlevel root span class hljs decorator 64 wst runlevel span N span class hljs number 3 span
  • 升级AS gradle错误

    错误信息 Direct local aar file dependencies are not supported when building an AAR 最近升级了AS和gradle 在编译时总是提示 gt Direct local a
  • 【项目实战】Spring体系结构与框架图

    一 Spring 体系结构 Spring 有可能成为所有企业应用程序的一站式服务点 xff0c 然而 xff0c Spring 是模块化的 xff0c 允许你挑选和选择适用于你的模块 xff0c 不必要把剩余部分也引入 下面的部分对在 Sp