Spring发展历程及其体系结构

news2024/11/19 19:39:11

⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章
⭐作者主页:@逐梦苍穹
⭐所属专栏:Spring

目录

  • 发展历程
  • 体系结构

发展历程

在这里插入图片描述

体系结构

Spring框架的体系结构的主要组成部分:
在这里插入图片描述

  1. 核心容器(Core Container): 核心容器是Spring框架的基础部分,提供了IoC容器和依赖注入(DI)功能,用于管理和组织应用程序的对象。核心容器由以下模块组成:
    ○ Spring IoC(Inversion of Control): Spring IoC模块负责管理应用程序的对象实例,实现了IoC容器的核心功能。它通过读取配置文件或注解配置来实现对象的创建、组装和生命周期管理。
    ○ Spring DI(Dependency Injection): Spring DI模块负责实现依赖注入功能,将对象之间的依赖关系委托给IoC容器来处理。通过DI,对象之间的依赖关系不再硬编码,而是通过配置或注解来声明和解析。
  2. AOP(Aspect-Oriented Programming): AOP模块提供了面向切面编程的支持,用于解耦和增强应用程序的横切关注点。它通过定义切面、连接点和通知等概念,实现了在应用程序执行过程中动态地插入和执行额外的逻辑。
  3. 数据访问/集成(Data Access/Integration): 数据访问/集成模块提供了与数据库、缓存、消息队列等数据源的集成支持,以及与其他系统的通信能力。
    它包括以下模块:
    ○ JDBC(Java Database Connectivity): JDBC模块提供了与关系型数据库的集成支持,用于进行数据库操作和数据访问。
    ○ ORM(Object-Relational Mapping): ORM模块提供了与对象关系映射框架的集成支持,如Hibernate、MyBatis等,用于实现对象和数据库之间的映射和交互。
    ○ OXM(Object/XML Mapping): OXM模块提供了与XML数据的集成支持,用于实现对象与XML之间的映射和转换。
    ○ JMS(Java Message Service): JMS模块提供了与消息队列系统的集成支持,用于实现异步消息的发送和接收。
    ○ Transactions(事务): 事务模块提供了对事务的管理和支持,保证在数据访问操作中的一致性和完整性。
  4. Web: Web模块提供了与Web开发相关的支持,用于构建Web应用程序和处理Web请求。它包括以下模块:
    ○ Spring MVC(Model-View-Controller): Spring MVC模块是Spring框架的Web框架,提供了MVC架构的支持,用于构建灵活和可扩展的Web应用程序。
    ○ Spring WebFlux: Spring WebFlux模块提供了响应式编程的支持,用于构建响应式的Web应用程序。
  5. 测试(Testing): 测试模块提供了对Spring应用程序的单元测试和集成测试的支持,包括对依赖注入和AOP的测试、模拟对象的支持、数据库测试支持等。
  6. 其他模块: Spring框架还包括其他一些模块,如安全性支持(Spring Security)、任务调度(Spring Task)、远程调用(Spring Remoting)等,用于提供额外的功能和扩展性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/680966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea如何集成Tomcat

(1)、这里应该找Add Configuration点击这里:如果没有标志,点击Exit (2)、这里可以配置一个配置项: (3)、loacl是本地,那个是远程:这里我选择本地 (4&#xff…

代码随想录算法训练营第四十二天 | 01背包理论基础,01背包理论基础(滚动数组),416. 分割等和子集

代码随想录算法训练营第四十二天 | 01背包理论基础,01背包理论基础(滚动数组),416. 分割等和子集 1.1 01背包理论基础 01背包 回溯法:暴力的解法是o(2^n)指数级别的时间复杂度,需要动态规划的解法来进行优…

如果你曾经拥有python,那么现在你应该拥抱Julia吗?

看完本文,您就会有较成熟的想法。 Julia和Python的区别是什么?为什么Julia适合用于大规模计算和超级计算机模拟? 你一定听说过Julia和Python这两个编程语言。虽然它们都可以用于从简单的机器学习应用程序到巨大的超级计算机模拟的所有方面&am…

Gradio的Audio组件介绍

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

ImGUI项目建立(cmake+MinGW64)

Dear ImGUI ImGui是一个轻量级的C图形界面库,它可以用于创建各种交互式的工具和编辑器。具有跨平台、高性能的特点。 ImGUI自身不能创建窗口,需要使用Win32API或glfw或SDL等工具来创建窗口,另外需要使用OpenGL或DirectX、vulkan用于渲染图形…

excel数据的编排与整理——表格结构的整理(一)

excel数据的编排与整理——表格结构的整理(一) 1 快速移动一列数据到指定位置 1.1 移动到相邻行 1.1.1 题目内容 1.1.2 选中年龄列➡移动到左侧直到出现十字箭头 1.1.3 按下shift键和左键➡移动到指定位置,直到出现"T"字形 1.1.4 松开鼠标左键后,移动就完成了 1.2…

Debian 12中安装Rstudio

1.Debian 12中安装R 打开终端,执行命令:#apt search r-base (注:此图为安装r-base后再来截图的),Debian 12官方源中默认为r-base 4.2.2,如果想安装最新版(当前最新版为R-4.3.0),可参考上次写的博文“Debi…

thinkphp 反序列化漏洞

文章目录 配置xdebug反序列化漏洞利用链详细分析poc1(任意文件删除)poc2(任意命令执行) 补充代码 配置xdebug php.ini [Xdebug] zend_extensionD:/phpstudy_pro/Extensions/php/php7.3.4nts/ext/php_xdebug.dll xdebug.modedebu…

Windows系统下安装Hadoop

文章目录 安装步骤环境验证 前面我们已经讲过了在 Linux下安装配置Hadoop环境,还没看过的可以先去了解一下安装流程。今天我们来看一下如何在Window下安装Hadoop,这其实和在Linux下的安装都是大同小异的。下面我们具体来看一下安装步骤。 安装步骤 首先…

pytorch安装教程(Ubuntu22.04.1,Anaconda3-2023.03)

本文主要讲述了在Linux系统中,通过anaconda安装pytorch的具体步骤,即需要在Ubuntu已经安装好anaconda,其安装步骤可以参考此篇博客:Ubuntu安装Anaconda详细步骤(Ubuntu22.04.1,Anaconda3-2023.03&#xff0…

数据结构期末总结

数据结构绪论 数据结构的概念 数据结构 : 数据结构是相互之间存在一种或多种特定关系的数据元素的集合数据结构研究的问题 :数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科抽象数据类型ADT&#xff1a…

JWT漏洞

JWT介绍 1.1 JWT概念 JSON Web Token(JWT) 是一个开放标准。它定义了一种紧凑而独立的方法,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用secret(HMAC算法)或使用“…

SwinTransformer细节总结

SwinTransformer可以看成是披着ResNet外壳的vision transformer,swin 就是两个关键词:patch 多尺度。下面结合code来说一些重点的细节: 总览图 这里W-MSA缩写是window-multi head self attention,SW-MSA缩写是shifted window-mu…

JDK 8到JDK 17都有哪些吸引人的特性?

从JDK 8到JDK 17,Java语言和平台经历了许多变化和改进,引入了许多吸引人的新特性和功能。在这里,给大家列举一些我认为最有趣或最有用的新特性,并会以实际使用案例为大家展示新用法。希望大家多多点赞关注!&#xff01…

C语言的switch case函数

文章目录 1 函数结构2 执行过程3 break关键字4 补充说明参考 1 函数结构 switch 是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的 if else 语句,基本格式如下: switch(表达式){ case 整型数值1: 语句 1; case 整型数值2: 语句 2; …

极致呈现系列之:Echarts词云图的数据共振

目录 什么是词云图词云图的特性及应用场景词云图的特性词云图的应用场景 Echarts中词云图的常用属性vue3中创建词云图 什么是词云图 词云图(Word Cloud)是一种以文字的形式展示数据的可视化图表。它通过将各个文字按照一定的规则排列,并根据…

车载软件架构 —— 闲聊几句AUTOSAR OS(六)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标准。到最…

centos版本的EDA虚拟机搭建2

这次教程主要介绍centos的必备软件的安装。 0、参考博客 1、VMware下CentOS 7虚拟机的安装 2、搭建属于自己的数字IC EDA环境(二):搭建Centos的基本使用环境和工具 3、cenos7基本配置 1、git安装 sudo yum install -y git2、gvim安装 su…

从大型语言模型LLM走向人工通用智能AGI的改进方向(public)

从大型语言模型走向人工通用智能AGI 返回论文和资料目录 1.导读 这篇博客主要基于《Sparks of Artificial General Intelligence: Early experiments with GPT-4》文中第9和第10节、以及我自己对当前LLM和AGI的理解。给出大型语言模型走向AGI时 改进的方向。 2.14个问题及改…

详解:阿里邮箱_阿里企业邮箱_阿里邮箱企业版

阿里邮箱是阿里云自主研发的,基于飞天平台自主研发的云原生分布式邮箱系统,阿里邮箱提供免费版、标准版、尊享版和集团版,企业邮箱版本不同支持的账号数也不同,共享网盘容量和个人网盘容量均不同,阿里云百科来详细介绍…