Spring Framework

Spring Framework

Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。

Spring 框架指的都是 Spring Framework,它是很多模块的集合,如下图所示:

在这里插入图片描述

一、Core Container

Spring 框架的核心模块,也可以说是基础模块,Spring 其他所有的功能基本都需要依赖于该模块。

  • Beans:提供对 bean 的创建、配置和管理等功能的支持。
  • Core:提供了框架的基本组成部分,包括 IOC控制反转DI依赖注入 功能。
  • Context:提供了上下文(ApplicationContext)的支持,包括资源加载、事件传播、国际化等功能。
  • Expression:提供对SpEL(Spring Expression Language) 表达式的支持。

二、AOP 模块

  • AOP:提供了AOP面向切面的编程实现,允许定义方法拦截器和切入点,将代码按照功能进行分离,以便干净地解耦。
  • Aspects:提供了与AspectJ的集成功能,AspectJ是一个功能强大且成熟的AOP框架。

三、数据访问/集成 模块

  • JDBC:提供了一个JDBC的抽象层,消除了烦琐的JDBC编码和数据库厂商特有的错误代码解析。
  • ORM:提供对 Hibernate、JPA 、iBatis 等 ORM 框架的支持。
  • OXM:提供一个抽象层支撑 OXM(Object-to-XML-Mapping),例如:JAXB、Castor、XMLBeans、JiBX 和 XStream 等。
  • JMS:消息服务。自 Spring Framework 4.1 以后,它还提供了对 spring-messaging 模块的继承。
  • Transactions:提供声明式事务管理。

四、Web模块

  • Web:提供了基本的Web开发集成功能,例如多文件上传功能、使用Servlet监听器初始化一个IOC容器以及Web应用上下文。
  • WebMVC:包含用于 web应用程序 的 Spring MVC 和 REST Web Services 实现。
  • WebSocket:提供了对 WebSocket 的支持,WebSocket 可以让客户端和服务端进行双向通信。
  • WebFlux:提供对 WebFlux 的支持。WebFlux 是 Spring Framework 5.0 中引入的新的响应式框架,完全异步。

五、Messaging 模块

Messaging 是 Spring 对消息传递机制的支持模块,它提供了一套丰富的 API 和组件,用于实现基于消息的应用程序和微服务。

六、Instrument 模块

Instrument 模块是 Spring Framework 的一个扩展模块,提供了对 JVM 的 Instrumentation API 的支持。

  • Instrumentation API 允许在 Java 程序运行时动态修改类定义和字节码,以实现一些高级的监控和诊断功能。

Instrumentation 模块通常与 Spring 的 AOP 模块结合使用,以实现对应用程序的动态代理和增强。

  • 例如,使用 Instrumentation API 在运行时生成代理类,并将拦截逻辑插入到方法执行前后,从而实现日志记录、性能统计等功能。

七、Test 模块

Test 模块 支持使用 JUnit 或 TestNG 对Spring组件进行单元测试和集成测试。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电脑恢复删除数据的原理和方法

在恢复数据的时候,很多人都会问,为什么删除的数据还能恢复?本篇和大家一起了解下硬盘上数据的存储方式,文件被删除的时候具体发生了什么,帮助大家理解数据恢复的基本原理。最后还会分享一个好用的数据恢复工具并附上图…

恒峰|高压森林应急消防泵|守护森林安全

森林是地球的肺腑,是人类赖以生存的重要资源。然而,随着人类活动的增加,森林火灾频发,给生态环境和人类生活带来严重威胁。为了保护森林资源,我们必须采取有效的措施进行消防。高压森林应急消防泵作为一种高效、环保的…

Kubernetes 部署 Tekton-Operator

Tekton Operator 简介 Tekton Operator 是一个 Kubernetes 扩展,用于在任何 Kubernetes 集群上安装、升级和管理 TektonCD Pipelines, Dashboard, Triggers(和其他组件)。 官方文档:https://tekton.dev/docs/operator/ 项目地址…

【redis】在Ubuntu 20.04中安装redis

在Ubuntu 20.04中安装redis 在Ubuntu 20.04中安装redis 切换到root用户 su root 使用apt命令来搜索redis相关的软件包. apt search redis 不能正常显示要先输入:sudo apt update 使用apt命令安装redis apt install redis 查找是否存在redis: netstat -anp | grep …

css实现梯形

<div class"trapezoid"></div> .trapezoid {width: 200px;height: 0;border-bottom: 100px solid red; /* 定义梯形的底边 */border-left: 50px solid transparent; /* 定义梯形的左边 */border-right: 50px solid transparent; /* 定义梯形的右边 */} …

Docker基础篇(-)

docker 三个要素 镜像容器仓库 CentOS 6.8 安装 docker centos 7.0 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager -y --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo systemctl start docker 启动Docker&…

分享阿姆斯特丹3D城市模型

处于开发阶段的阿姆斯特丹 3D 城市模型可用于更轻松地向公众传达空间规划。 公众可以更多地参与市政府的规划决策和宗旨。 城市模型由简化形状的建筑物组成。 参见&#xff1a; 3D Amsterdam

stm32和嵌入式linux可以同步学习吗?

在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「stm3的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;如果需要使用STM32&#xff0c;建…

STM32控制数码管从0显示到99

首先 先画电路图吧&#xff01;打开proteus&#xff0c;导入相关器件&#xff0c;绘制电路图。如下&#xff1a;&#xff08;记得要保存啊&#xff01;发现模拟一遍程序就自动退出了&#xff0c;有bug&#xff0c;我是解决不了&#xff0c;所以就是要及时保存&#xff0c;自己重…

如何使用Docker部署开源Leanote蚂蚁笔记并发布个人博客至公网

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 1. 安装Docker2. Docker本地部署Leanote蚂蚁笔记3. 安装…

提供英语励志名言的软件有哪些?这些软件不可错过

提供英语励志名言的软件有哪些&#xff1f;在追求个人成长和激励的道路上&#xff0c;英语励志名言常常为我们提供前进的动力。这些言简意赅、充满智慧的话语&#xff0c;不仅能在我们迷茫时指引方向&#xff0c;还能在挫折中给予我们勇气和力量。如今&#xff0c;随着科技的发…

十大基础排序算法

排序算法分类 排序&#xff1a;将一组对象按照某种逻辑顺序重新排列的过程。 按照待排序数据的规模分为&#xff1a; 内部排序&#xff1a;数据量不大&#xff0c;全部存在内存中&#xff1b;外部排序&#xff1a;数据量很大&#xff0c;无法一次性全部存在内存中&#xff0c;…