Spring Framework 核心容器详解:Core、Beans、Context 和 Expression Language 模块

news2024/11/24 20:08:45

Spring可能成为您的所有企业应用程序的一站式商店。但是,Spring是模块化的,允许您挑选适用于您的模块,而无需引入其他模块。下面的部分提供了Spring Framework中所有可用模块的详细信息。

Spring Framework提供了大约20个模块,可以根据应用程序要求使用。

核心容器

核心容器由Core、Beans、Context和Expression Language模块组成,其详细信息如下:

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

数据访问/集成

数据访问/集成层由JDBC、ORM、OXM、JMS和Transaction模块组成,其详细信息如下:

  • JDBC模块提供了一个JDBC抽象层,消除了繁琐的JDBC相关编码。
  • ORM模块为流行的对象关系映射API(包括JPA、JDO、Hibernate和iBatis)提供了集成层。
  • OXM模块提供了一个支持JAXB、Castor、XMLBeans、JiBX和XStream的Object/XML映射实现的抽象层。
  • Java消息服务JMS模块包含用于生成和消费消息的特性。
  • Transaction模块支持实现特殊接口的类和所有POJO的编程和声明性事务管理。

Web

Web层由Web、Web-MVC、Web-Socket和Web-Portlet模块组成,其详细信息如下:

  • Web模块提供基本的面向Web的集成功能,如多部分文件上传功能以及使用servlet监听器和面向Web的应用程序上下文初始化IoC容器。
  • Web-MVC模块包含Spring用于Web应用程序的Model-View-Controller(MVC)实现。
  • Web-Socket模块提供了在Web应用程序中客户端和服务器之间进行基于WebSocket的双向通信的支持。
  • Web-Portlet模块提供了用于在Portlet环境中使用的MVC实现,并反映了Web-Servlet模块的功能。

其他

还有其他一些重要的模块,如AOP、Aspects、Instrumentation、Web和Test模块,其详细信息如下:

  • AOP模块提供了一种面向方面的编程实现,允许您定义方法拦截器和切入点,以清晰地解耦实现应该分离的功能的代码。
  • Aspects模块提供了与AspectJ的集成,这又是一个强大而成熟的AOP框架。
  • Instrumentation模块提供了类仪器支持和类装入器实现,可用于某些应用程序服务器。
  • Messaging模块提供了支持STOMP作为用于应用程序的WebSocket子协议的功能。它还支持一种注释编程模型,用于从WebSocket客户端路由和处理STOMP消息。
  • Test模块支持使用JUnit或TestNG框架测试Spring组件。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

在这里插入图片描述

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

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

相关文章

八大学习方法(金字塔模型、费曼学习法、布鲁姆学习模型)

在微博上看到博主发的,觉得总结很好,在此摘录:

JZ22:链表中倒数第k个结点

JZ22:链表中倒数第k个结点 题目描述: 输入一个链表,输出该链表中倒数第k个结点。 示例1 输入: 1,{1,2,3,4,5} 返回值: {5} 分析: 快慢指针思想: 需要两个指针,快指针fast&…

JS-项目实战-编辑单价单元格,可以点击单价单元格并且出现文本框,并自动选中输入框内部的文本

1、鼠标悬浮和离开事件.js //当页面加载完成后执行后面的匿名函数 window.onload function () {//get:获取 Element:元素 By:通过...方式//getElementById()根据id值获取某元素let fruitTbl document.getElementById("fruit_tbl");//table.rows:获取这个表格…

Nginx + RTMP + nginx-http-flv-module 环境搭建(CentOS 7)

文章目录 1. 引言2. 安装 Nginx3. 安装依赖库4. 下载编译 Nginx with RTMP 模块5. 配置 Nginx6. 启动 Nginx7. 推流测试8. 播放测试9. 拓展9.1 鉴权配置9.2 HTTPS 配置9.3 安全性配置 10. 小结 🎉Nginx RTMP nginx-http-flv-module 环境搭建(CentOS 7&…

程序员进阶之路,该怎么走?

时代洪流,大浪淘沙。 逆水行舟,不进则退。 如果你游的速度慢于水流,要么你就是被剩下的沙子,要么就是即将被打翻的行舟了。。。 身为程序员时刻保持危机感,然后陷入内卷...... 卷又卷不赢,躺又躺不平。 …

如何使用代理IP访问YouTube?

相信大家对YouTube都很熟悉,但是由于网络安全管制,我们在看YouTube视频时经常遇到由于地理封锁或网络限制而受到限制的人吗?如果是这样,您一定听说过代理IP(代理服务器)以及它们如何帮助您绕过此类限制&…

计算机视觉:使用opencv实现车牌识别

1 引言 汽车车牌识别(License Plate Recognition)是一个日常生活中的普遍应用,特别是在智能交通系统中,汽车牌照识别发挥了巨大的作用。汽车牌照的自动识别技术是把处理图像的方法与计算机的软件技术相连接在一起,以准…

2022年06月 Scratch(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

一、单选题(共25题,每题2分,共50分) 第1题 广场中有声控喷泉,当声音的音量大于60的时候,喷泉就会喷出水,现在的音量为30,下列哪个选项可以让喷泉喷出水? A: B: C: D: 答案:B 当前声音的音量为30,需要将声音增加到60以上就可以让喷泉喷出水,选项A将声音…

Java中 ==、equals() 、equalsIgnoreCase() 和compareTo() 方法对比详解

目录 运算符 equals() 方法 equalsIgnoreCase() 方法 compareTo() 方法 对比总结 运算符 运算符是Java中用于比较两个操作数是否相等的运算符。它可以用于比较基本数据类型和对象类型。 1、对于基本数据类型: 比较的是两个操作数的值是否相等。如果两个操作数…

Oracle(17)Managing Roles

目录 一、基础知识 1、基础介绍 2、Predefined Roles 预定义的角色 3、各种角色的介绍 二、基础操作 1、创建角色 2、修改用户默认role 3、回收role 4、删除role 5、为角色授权 6、授予角色给用户 7、查看用户包含的角色: 8、查看角色所包含的权限 9、…

教育数字化助力打造个性化语言学习环境

2023年,我国教育数字化呈现高速发展态势,网络教育用户规模、在线教育市场规模、数字内容市场规模再创历史新高,数字校园建设普及率、教师数字技术素养等均高于全球平均水平。 在数字技术支撑下,新的语言学习方式也在逐渐普及。 语言学家克拉申(Stephen Kr-ashen)提出的二语习得…

hidl hwbinder和binder混合使用相关的joinThreadPool问题解答

背景: 今天一个学员在群里有个提问如下图,怎么有两个joinThread,会执行么?joinThread不是死循环等待数据吗? /frameworks/av/media/mediaserver/main_mediaserver.cpp 当开始看到这个时候确实也觉得最后的hw的join根本…

今年跳槽成功测试工程师原来是掌握了这3个“潜规则”

随着金九银十逐渐进入尾声,还在观望机会的朋友们已经开始焦躁:“为什么我投的简历还没有回音?要不要趁现在裸辞好好找工作?” “金九银十”作为人们常说的传统“升职加薪”的黄金季节,也是许多人跳槽的理想时机。然而…

Windows本地配置带GPU的Pytorch环境

首先需要安装并配置好Anaconda环境,安装教程教程随便找一个就好。 第一步:安装好之后创建conda虚拟环境: conda create -n your_env_name pythonx.x 第二步:安装需要版本的pytorch:pytorch下载链接 cu100/torch-1.2…

用嘉立创查找元件的原理图

目录 1.打开立创商城 2.搜索元件 ​编辑 3.复制编号 ​编辑 4.打开元件库 5.将复制好的编号进行搜索 1.打开立创商城 2.搜索元件 3.复制编号 4.打开元件库 5.将复制好的编号进行搜索

虚拟机第一次如何打开

1、将别人的虚拟机拷贝到自己的电脑盘里; 2、打开VMware,选择“打开虚拟机”; 3、选择拷贝的虚拟机里的.vmx文件; 4、选择“播放虚拟机”; 5、如果出现一个选择框,选“我已复制改虚拟机”即可。

PC端微信@所有人逻辑漏洞

(一)过程 这个漏洞是PC端微信,可以越权让非管理员艾特所有人,具体步骤如下 第一步:找一个自己的群(要有艾特所有人的权限)“123”是我随便输入的内容,可以更改,然后按c…

第二篇 《随机点名答题系统》——题库管理详解(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)

目录 1.功能需求 2.数据库设计 3.流程设计 4.关键代码 4.1.题库维护 4.1.1数据请求示意图 4.1.2添加题库(login.php)数据请求代码 4.1.3删除题库(login.php)数据请求代码 4.1.4 业务处理Service(tiKuService…

Python数据容器(字典)

字典 1.字典的定义2.字典数据的获取3.字典的嵌套4.嵌套字典的内容获取5.字典的常用操作6.常用操作总结7.遍历字典8.练习 1.字典的定义 同样使用{},不过存储的元素是一个一个的:键值对,语法如下 # 定义字典字面量 {key:value,key:value,...,…

小学生加减乘除闯关运算练习流量主微信小程序开发

小学生加减乘除闯关运算练习流量主微信小程序开发 经过本次更新,我们增加了新的功能和特性,以提升用户体验和运算练习的趣味性: 能量石与激励视频:用户可以通过观看激励视频来获取能量石,这些能量石可以用于解锁收费…