Spring 体系架构模块和三大核心组件介绍

Spring架构图

模块介绍

1. Spring Core(核心容器):提供了IOC,DI,Bean配置装载创建的核心实现。

  • spring-core :IOC和DI的基本实现

  • spring-beans:BeanFactory和Bean的装配管理(BeanFactory)

  • spring-context:Spring context上下文,即IOC容器(AppliactionContext)

  • spring-expression:spring表达式语言

2. Spring AOP

  • spring-aop:面向切面编程的应用模块,整合ASM,CGLib,JDK Proxy

  • spring-aspects:集成AspectJ,AOP应用框架

  • spring-instrument:动态Class Loading模块

3. Spring Data Access

  • spring-jdbc:spring对JDBC的封装,用于简化jdbc操作

  • spring-orm:java对象与数据库数据的映射框架

  • spring-oxm:对象与xml文件的映射框架

  • spring-jms: Spring对Java Message Service(java消息服务)的封装,用于服务之间相互通信

  • spring-tx:spring jdbc事务管理

4. Spring Web

  • spring-web:最基础的web支持,建立于spring-context之上,通过servlet或listener来初始化IOC容器

  • spring-webmvc:实现web mvc

  • spring-websocket:与前端的全双工通信协议

  • spring-webflux:Spring 5.0提供的,用于取代传统java servlet,非阻塞式Reactive Web框架,异步,非阻塞,事件驱动的服务

5. Spring Message

  • Spring-messaging:spring 4.0提供的,为Spring集成一些基础的报文传送服务

6. Spring test

  • spring-test:集成测试支持,主要是对junit的封装

Spring三大核心组件

spring-core(核心)

思想:Core组件的核心思想是控制反转(IoC)和依赖注入(DI),它将对象的创建、组装和管理的责任从应用程序代码中转移到了Spring容器中,实现了对象之间的松耦合和可维护性。

 作用:Core组件提供了核心的基础设施和工具,如资源管理、类型转换、事件发布等。

spring-beans(Bean容器)

 思想:通过Bean容器管理和组装对象。它使用配置文件或注解来定义和描述Bean,然后通过依赖注入将Bean注入到其他对象中,实现对象之间的协作和解耦。

作用:Beans组件提供了Bean的定义、创建、配置和生命周期管理,它包含了BeanFactory接口,用于实例化和管理Beans,以及BeanPostProcessor接口用于在Bean实例化和初始化过程中提供自定义的处理逻辑。

spring-context(应用上下文)

思想:Context组件的思想是提供一个大型、功能丰富的应用程序上下文容器。它扩展了Beans组件,提供了更高级的功能和特性,如国际化、资源管理、事件传播等。

作用:Context组件提供了ApplicationContext接口,作为应用程序的主要接口,负责管理整个应用程序的生命周期和依赖关系,管理Beans的生命周期、依赖关系、国际化、事件传播等。

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

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

相关文章

深度学习 图像分割 PSPNet 论文复现(训练 测试 可视化)

Table of Contents 一、PSPNet 介绍1、原理阐述2、论文解释3、网络模型 二、部署实现1、PASCAL VOC 20122、模型训练3、度量指标4、结果分析5、图像测试 一、PSPNet 介绍 PSPNet(Pyramid Scene Parsing Network)来自于CVPR2017的一篇文章,中文翻译为金字塔场景解析…

创建django文件

1、在指定目录里打开终端,输入D:\Softwares\Anaconda3\envs\pytorch\Scripts\django-admin .exe startproject 名称 ,即可在对应目录里创建django文件。

私有云盘:lamp部署nextcloud+高可用集群

目录 一、实验准备: 二、配置mariadb主从复制 三台主机下载mariadb 1)主的操作 2)从的操作 3)测试数据是否同步 三、配置nfs让web服务挂载 1、安装 2、配置nfs服务器 3、配置web服务的httpd 4、测试 四、web 服务器 配…

黑豹程序员-架构师学习路线图-百科:CSS-网页三剑客

文章目录 1、为什么需要CSS2、发展历史3、什么是CSS4、什么是SASS、SCSS 1、为什么需要CSS 作为网页三剑客的第二,CSS为何需要它,非常简单HTML只能完成页面的展现,但其做出来的页面奇丑无比。 随着网络的普及,人们的要求更高&…

微信支付费率降低到0.2%,商家收款开户手续费0.6%降低的操作方法

在如今的数字时代,移动支付已成为人们日常生活中必不可少的一部分。微信支付作为国内最受欢迎的移动支付平台,一直致力于为商家和个人提供最便捷、安全的支付方式。如果可以将微信支付将费率降低到仅为0.2%,这无疑给广大商家带来了巨大的利好…

Golang 中的调试技巧

掌握有效的策略和工具,实现顺畅的开发 调试是每位开发人员都必须掌握的关键技能。它是识别、隔离和解决代码库中问题的过程。在 Golang 的世界中,掌握有效的调试技巧可以显著提升您的开发工作流程,并帮助您创建更可靠和健壮的应用程序。在本…

软件设计师_计算机网络_学习笔记

文章目录 4.1 网路技术标准与协议4.1.1 协议4.1.2 DHCP4.1.3 DNS的两种查询方式 4.2 计算机网络的分类4.2.1 拓扑结构 4.3 网络规划与设计4.3.1 遵循的原则4.3.2 逻辑网络设计4.3.3 物理网络设计4.3.4 分层设计 4.4 IP地址与子网划分4.4.1 子网划分4.4.2 特殊IP 4.5 HTML4.6 无…

全排列[中等]

优质博文:IT-BLOG-CN 一、题目 给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例…

VBA技术资料MF66:使用代码插入行或列

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…

安装NodeJS并使用yarn下载前端依赖

文章目录 1、安装NodeJS1.1 下载NodeJS安装包1.2 解压并配置NodeJS1.3 验证是否安装成功2、使用yarn下载前端依赖2.1 安装yarn2.2 使用yarn下载前端依赖参考目标:在Windows下安装新版NodeJS,并使用yarn下载前端依赖,实现运行前端项目。 1、安装NodeJS 1.1 下载NodeJS安装包…

六、互联网技术——数据存储

文章目录 一、存储系统层次结构二、按照重要性分类三、磁盘阵列RAID三、RAID基础四、磁盘阵列分级五、数据备份与恢复六、容灾与灾难恢复 一、存储系统层次结构 常见的三层存储体系结构如下图所示,分为高速缓冲存储器、主存储器和外存储器。 二、按照重要性分类 …

浏览器从输入URL到展示的流程

文章目录 1. URL输入2. DNS解析3. 建立TCP连接4. 发送http或者https请求5. 服务器端响应请求6. 浏览器解析渲染页面7. 断开TCP连接 1. URL输入 输入URL后,浏览器会对URL进行以下的判断 是否合法如果合法,则判断URL是否完整,如果不完整&…