Spring整体架构

2023-05-16

Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示。

在这里插入图片描述Spring整体架构图

1.Core Container
Core Container(核心容器)包含有CoreBeansContextExpression Language模块。
Core和Beans模块是框架的基础部分,提供IOC(控制反转)和依赖注入特性。
·Core模块主要包含Spring框架基本的核心工具类,Spring的其他组件都要用到这个包里的类,Core模块是其他组件的基本核心。
·Beans模块是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control/Dependency Injection(IOC/DI)操作相关的所有类。
·Context模块构建于Core和Beans模块基础之上,提供了一种类似于JNDI注册器的框架式的对象访问方法。Context模块继承了Beans的特性,为Spring核心提供了大量扩展,添加了对国际化(例如资源绑定)、事件传播、资源加载和对Context的透明创建的支持。
·Expression Language模块提供了强大的表达式语言,用于在运行时查询的操纵对象。
2.Data Access/Integration
Data Access/Integration层包含JDBCORMOXMJMSTransaction模块。
·JDBC模块提供了一个JDBC抽象层,它可以消除冗长的JDBC编码和解析数据库厂商特有的错误代码。这个模块包含了Spring对JDBC数据访问进行封装的所有类
·ORM模块为流行的对象-关系映射API。利用ORM封装包,可以混合使用所有Spring提供的特性进行O/R映射。
·OXM模块提供了一个对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB、Castor、XMLBeans、JiBX和XStream。
·JMS模块主要包含了一些制造和消费信息的特性。
·Transaction模块支持编程和声明性的事务管理,这些事务类必须实现特定的接口,并且对所有的POJO都适用。
3.Web
Web上下文模块建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文。
Web层包含了WebWeb-ServletWeb-StrutsWeb-Porlet模块。
·Web模块提供了基础的面向Web的集成特性。它还包含Spring远程支持中Web的相关部分。
·Web-Servlet模块包含Spring的model-view-controller(MVC)实现。
·Web-Struts模块提供了对Struts的支持。该支持在Spring3.0中已被弃用。
·Web-Porlet模块提供了用于Portlet环境和Web-Servlet模块的MVC的实现。
4.AOP
AOP模块提供了一个符合AOP联盟标准的面向切面编程的实现,它让你可以定义例如方法拦截器和切点,从而将逻辑代码分开,降低它们之间的耦合性。
Spring AOP模块为基于Spring的应用程序中的对象提供了事务管理服务。通过Spring AOP,不用依赖EJB组件,就可以将声明式事务管理集成到应用程序中。
·Aspects模块提供了对AspectJ的集成支持
·Instrumentation模块提供了class instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用。
5.Test
Test模块支持使用Junit和TestNG对Spring组件进行测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring整体架构 的相关文章

  • 如何进行日常写作训练?

    我似乎陷入了一种巨大的痛苦漩涡中而不能自拔 xff01 最近我感觉写一篇文章真的是太费劲了 xff0c 就好像要用尽我全身力气似的 xff0c 这种感觉实在是太窒息了 xff0c 第一次体验到写一篇文章写得都快要死了的那种感受 xff0c
  • 向刘邦同志学习

    引言 最近在知乎闲逛 xff0c 无意中看到一个问题 xff0c 即刘邦最大的才能是什么 xff0c 顿时觉得这个问题很有趣 xff0c 于是就留心多翻了一些回答 xff0c 发现其中有一个叫张福来的用户的回答深得我心 xff0c 遂果断记
  • 数据结构与算法(Java版) | 队列的应用场景和介绍

    队列的一个应用场景 给大家介绍完稀疏数组这种数据结构之后 xff0c 接下来我再来给大家介绍另外一种数据结构 xff0c 即队列 队列 xff0c 听其名而知其义 xff0c 相信大家应该都在现实生活中见过 xff0c 比如在火车站排队买票
  • 数据结构与算法(Java版) | 数组模拟队列的思路分析与代码实现

    思路分析 上一讲我们讲过 xff0c 队列既可以用数组来实现 xff0c 也可以用链表来实现 xff0c 但由于我们比较熟悉数组这种结构 xff0c 所以这里我会先给大家讲一下数组这种实现方式 xff0c 至于链表这种实现方式 xff0c
  • android 8.1 MTK 方案修改记录

    Music播放音乐时锁屏不需要显示专辑封面 span class token operator 43 43 span span class token operator 43 span b span class token operator
  • centos 5 yum 不能用出现all mirror URLs are not use ftp http or file

    新装了一个centos 5 11 xff0c yum一直没法用 xff0c 每次使用都是出现下图的提示 xff1a 在网上找各种解决方案 xff0c 都是网络没连上 xff0c DNS有问题之类的 直到找到一篇帖子提到centos 5所有资
  • 远程连接——SSH

    简介 SSH xff08 Secure Shell xff09 是一种安全通道协议 xff0c 主要用来实现字符界面的远程登录 远程 复制等功能 SSH 协议对通信双方的数据传输进行了加密处理 xff0c 其中包括用户登录时输入的用户口令
  • Ubuntu 安装LLVM

    在部署galois时 xff0c 需要安装libllvm gt 61 7 0 with RTTI support xff0c 但是如果使用直接编译好的 xff0c 则并不会对RTTI提供支持 因此选择下载源代码自己编译安装 xff0c 并设
  • 关于ubuntu分区挂载

    转载自https blog csdn net u010409517 article details 88081911 一 硬盘分区 1 查看硬盘及所属分区情况 sudo fdisk lu 如图显示 xff0c 我们对200G硬盘进行分区 x
  • Ubuntu开启SSH远程登录

    本文介绍如何在Ubuntu下开启ssh服务并能通过Xshell进行远程登录的方法 测试使用的是在虚拟机上装的Ubuntu和window10 首先更新自己Ubuntu的源 xff0c 具体自行解决 更改IP地址 可以在设置里面设置 xff0c
  • SSH配置免密登录方法

    转载自https blog csdn net jeikerxiao article details 84105529 1 客户端生成公私钥 本地客户端生成公私钥 xff1a xff08 一路回车默认即可 xff09 ssh span cla
  • 阿里云上为服务器申请外网网卡并绑定公网ip

    在阿里云上创建ECS实例的时候 xff0c 云会自动配置公网ip和内网ip 但实质在该ECS实例上只有内网ip xff0c 可以通过ifconfig进行查看 xff0c 如下图 xff1a eth0是一个内网网卡 xff0c 上面绑定的是内
  • C++中常用函数 (持续更新ing...)

    access 函数std memsetfseek函数ftell std condition variable notify one notify allfread
  • mpi关于send/receive的顺序问题

    引用 MPI buffered send receive order I m using MPI with fortran but the question is more specific to the MPI standard than
  • std::sort导致内存崩贵

    转载自 xff1a 一次stl sort调用导致的进程崩溃 include span class token operator lt span algorithm span class token operator gt span span
  • 极光推送集成问题记录

    安装 npm install jpush react native save 也需要安装jcore react native npm install jcore react native save 核心步骤参考 xff1a https gi
  • 解决Navicat连接远程服务器出现lost connection to mysql server at ‘reading initial communication packet‘

    本文章是基于 这类问题在网上已经有很多类似的解答了 xff0c 诸如各种的修改my cnf xff0c 或者修改MySQL设置 Navicat设置 但是在我自己遇到这些问题的时候我尝试过搜索很多答案 xff0c 但是都没有得到解决 我的My
  • 快速排序quicksort算法Java的实现

    span class token keyword public span span class token keyword class span span class token class name QuickSort span span
  • 一行代码解决macOS下Android Studio提示的“licences have not been accepted”

    打开终端 直接输入 Library Android sdk tools bin sdkmanager licenses 接着一路 y 即可解决问题
  • 最简单的纯css固定table的表头

    页面table通常都需要做表头固定 xff0c 参考了n种实现方式 xff0c 最终还是选择了用纯css来做表头固定 xff0c 只是因为方便 xff0c 易于调试 table tbody display block height 450p

随机推荐

  • kali linux修改更新源及更新

    1 修改sources list源文件 xff1a leafpad etc apt sources list aliyun 阿里云 deb http mirrors aliyun com kali kali rolling main non
  • 手写一个JSON反序列化程序

    上一篇文章 JSON是什么 给大家介绍了JSON的标准规范 xff0c 今天就自己动手写一个JSON的反序列化程序 xff0c 并命名它为 zjson 0 开始之前 本篇文章的目的是学习实践 xff0c 所以我们选择相对简单的Python实
  • mysql 读取指定表的字段类型、名称、注释

    写文档时经常需要整理数据库字段为表格 xff0c 通过下面sql xff0c 可以获取字段的名称 类型 注释等属性 1 简单版 SELECT COLUMN NAME 字段名称 COLUMN COMMENT 字段注释 COLUMN TYPE
  • Jmeter阶梯压力测试_导出测试报告

    阶梯性能测试需要安装jpgc插件 xff0c 所以下文先安装了个插件管理器 xff0c 再安装jpgc插件 xff0c 最后实现阶梯性能测试 1 官网下载Jmeter https jmeter apache org download jme
  • SQL like 多个名称,用正则匹配

    select from category where REGEXP LIKE code 39 0201 0202 39 实现了code字段正则匹配0201 或者 0202
  • 原型、设计、前端 协作工具汇总

    目前主流的 UI 设计软件有 Sketch Photoshop Adobe XD 和 Figma xff0c 并且国内已经有很多优秀软件基于这些设计软件作出了相关协作工具 生成工具 xff0c 大大提高了工作效率 xff0c 在此汇总收集相
  • 单点登录系统对比 - 协议介绍及 cas、keyclock、authz、authing等的对比

    协议 用户中心系统作为服务端 xff0c 肯定是要跟客户端进行对接来授权 amp 获取用户信息的 目前大致流行的有 LDAP CAS OIDC 基于 Oauth2 0 SAML 等 xff0c 此外还有 Kerberos 等不太常见的协议
  • jquery ajax 提交json格式数据

    某些系统后台必须传json数据 xff0c 所以需要使用如下格式设置 ajax url 34 login 34 data JSON stringify 34 username 34 34 zhangsan 34 34 password 34
  • RSA 非对称加密解密,可以javascript和java加解密

    公钥与私钥机制属于非对称加密的范畴 xff0c 非对称是相对于对称加密而言的 xff0c 对称加密用于加密与解密的密钥是同一把 xff0c 而非对称加密则用于加密与解密的密钥不相同 xff0c 一个公开 xff0c 称为公钥 xff1b 一
  • word 通过宏选中所有表格

    1 将下面的脚本复制 2 word 视图 宏 查看宏 输入宏名 xff1a SelectAllTables 点击创建 Alt 43 F11打开VBA代码编辑窗口 xff0c 新增模块 3 将脚本编辑窗口中的默认代码删掉 xff0c 粘贴1步
  • 开源表单收集系统推荐

    1 TDUCK填鸭表单官网 开源表单系统 xff0c 自定义工作流 xff0c 信息收集系统 业务表单自由拖拽实时生成 全新工作流版本 全新移动端UI 表单收款 全新预约组件 投票场景支持 考试场景支持 函数计算支持 目前市面上的表单平台虽
  • .net framework 官方下载地址

    net framework 官方下载地址 https dotnet microsoft com zh cn download dotnet framework
  • QT/C++多线程练习:单生产者多消费者(巨详细版本)

    QT多线程练习 单生产者多消费者 代码思路1 全局变量2 消费者线程3 消费者管理类4 生产者线程5 主线程总结 最近在研究qt的线程的一些知识点 从如何新建线程到以不同的方式去新建线程 xff0c 再到多线程以及多线程同步的几种方式等 看
  • uniapp 设置背景图像

    uniapp设置背景图像方法如下 xff0c 兼容android APP lt view class 61 34 outer 34 style 61 34 background 39 url 39 43 APPSET bgUrl 43 39
  • nginx https 代理 tomcat http,解决访问https还会跳转http问题

    server listen 443 ssl 配置HTTPS的默认访问端口为443 如果未在此处配置HTTPS的默认访问端口 xff0c 可能会造成Nginx无法启动 如果您使用Nginx 1 15 0及以上版本 xff0c 请使用liste
  • jquery pagination分页组件

    pagination 一个jQuery插件 xff0c 提供简单但完全可定制的分页 样式如下 官网 https pagination js org github https github com superRaytin pagination
  • 通过FRP搭建内网穿透,实现域名访问局域网本机

    1我的目标 xff1a 实现通过域名访问局域网tomcat服务 xff0c 域名访问方便本地微信调试 2思路 xff1a xff08 1 xff09 用服务器搭建内网穿透 利用FRP实现穿透 xff0c frp 是一个专注于内网穿透的高性能
  • java 用combiner工具合成图片

    目录 图片合成工具image combinermaven引入项目java代码合成图片 图片合成工具image combiner 官网地址 https gitee com dromara image combiner maven引入项目 lt
  • java用图片生成pdf

    maven引入组件itextpdf span class token tag span class token tag span class token punctuation lt span dependency span span cl
  • Spring整体架构

    Spring框架是一个分层架构 xff0c 它包含一系列的功能要素 xff0c 并被分为大约20个模块 xff0c 如下图所示 Spring整体架构图 1 Core Container Core Container xff08 核心容器 x