spring框架构成

spring框架构成

模块
模块

spring中集成了多个模块,包含有核心容器、数据访问、web、AOP等模块

核心容器包含有Spring Core、Spring Beans、Spring Context和EL模块

  • Spring Core

    spring的核心,提供Spring框架的基本功能。主要组件是BeanFactory,工厂模式的实现,使用IOC模式将应用程序的配置和依赖性规范与实际的应用程序代码分开

  • Spring Beans

    所有应用都要用到,包含了访问配置文件、创建和管理bean的一些相关类,以及进行IOC/DI操作相关的所有类

  • Spring Context

    Spring Context是Spring上下文,基于Core和Beans模块之上,提供了一种类似于JNDI注册器的框架式的对象访问方法,继承了Beans的特性,为spring核心提供了大量扩展,添加了对国际化、事件传播、资源加载和对Context的透明创建的支持,实际上是一个配置文件,由Spring框架提供上下文信息,ApplicationContext接口是Context模块的关键

Data Access/Integration层包含JDBC、ORM、OXM、JMS和Transaction模块

  • Spring JDBC

    提供了一个JDBC抽象层

  • Spring ORM

    Spring框架插入了若干个ORM框架,从而提供了ORM的对象关系工具,包括JDO、Hibernate和iBatis。都遵从Spring的通用事务和DAO异常层次结构

  • Spring OXM

    提供了一个对Object/XML映射实现的抽象层,Object/XML映射实现包括JAXB、Castor、JiBX和XStream

  • Spring JMS

    包含了一些制造和消费消息的特性

  • Transaction

    支持编程和声明性的事务管理

Web模块为基于Web的应用程序提供了上下文,简化了处理大部分请求以及将请求参数绑定到域对象的工作,包含了Web、Web-Servlet、Web-Struts和Web-Porlet模块

  • Spring Web

    提供了基础的面向Web的集成特性

  • Web-Servlet

    包含了spring的MVC实现

    MVC框架是一个全功能构建Web应用程序的MVC实现。通过策略接口,MVC框架变成为高度可配置的,MVC容纳了大量视图技术,其中包括JSP、Velocity、Tiles、iText和POI。

  • Web-Struts

    提供了对Struts的支持,使得类在Spring应用中能够与一个典型的Struts Web层集成在一起,在spring3.0中被弃用

  • Web-Porlet

    提供了用于Portlet环境和Web-Servlet模块的MVC实现

AOP模块提供了一个符合AOP标准的面向切面编程的实现,通过配置管理特性,AOP模块直接将面向切面的编程功能集成到了Spring框架中。可以很容易的使Spring框架管理的任何对象支持AOP。如事务管理

  • Aspects

    提供了对AspectJ的集成支持

  • Instrumentation

    提供了class Instrumentation支持和classloader实现,使得可以在特定的应用服务器上使用

https://zhhll.icu/2020/框架/spring/基础/1.spring结构/

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实战攻防 | 记一次项目上的任意文件下载

1、开局 开局一个弱口令,正常来讲我们一般是弱口令或者sql,或者未授权 那么这次运气比较好,直接弱口令进去了 直接访问看看有没有功能点,正常做测试我们一定要先找功能点 发现一个文件上传点,不过老规矩,还…

实用运维工具(转载)

1、查看进程占用带宽情况-Nethogs Nethogs 是一个终端下的网络流量监控工具可以直观的显示每个进程占用的带宽。 下载:http://sourceforge.net/projects/nethogs/files/nethogs/0.8/nethogs-0.8.0.tar.gz/download [rootlocalhost ~]#yum -y install libpcap-deve…

Jenkins 命令无法后台运行,使用BUILD_ID=dontKillMe解决

例子: jenkins如果在shell里使用nohup发现还是不能后台运行,直接挂掉。 那么可以在jenkins命令里加上BUILD_IDdontKillMe解决 nohup python main.py >server.out 2>&1 &它的作用是在后台运行名为main.py的Python脚本,并将标准…

使用自己的数据基于SWIFT微调Qwen-Audio-Chat模型

目录 使用自己的数据训练参数设置自己的数据准备语音转写任务语音分类任务 开始训练不同训练方法mpddpmp ddpdeepspeed 训练实例训练详情Qwen-Audio-Chat模型 模型数据实例官方可用的数据由内部函数处理为指定格式 训练好的模型测试 使用自己的数据 官方参考文档:…

昇腾Ascend之npu-smi工具在Atlas 200I DK A2的简单使用

一、参考资料 npu-smi工具 二、测试环境 设备型号:Atlas 200 DK(Model: 3000) Operating System Version: Ubuntu 22.04 LTS CPU Type: 4核TAISHANV200M处理器 AI CPU number: 1 control CPU number: 3 RAM: 4GB miscroSD: 128GBrootdavinci-mini:~# npu-smi i…

OpenSSH 安全漏洞(CVE-2023-51385) 升级v9.7

漏洞编号:OpenSSH 安全漏洞(CVE-2023-51385) openssh9.7文件获取 https://f.ws59.cn/f/dtv9atef3io 复制链接到浏览器打开 处理方式 ##注释掉的根据实际情况处理 #查询原openssh9.4p1是否有安装openssh-askpass,若有需先删除 rpm -qa | grep openss…

Chemical Science 山东师范大学唐波课题组关于核靶向探针的综述

文献来源:Fluorescent probes for organelle-targeted bioactive species imaging - Chemical Science (RSC Publishing) 一、 基于RONSS的探针设计: 1.基于ROS的探针设计: ROS(包括, , , , , )可以扩散到细胞核内&am…

Redis 常用的基本命令

🔥博客主页:fly in the sky - CSDN博客 🚀欢迎各位:点赞👍收藏⭐️留言✍️🚀 🎆慢品人间烟火色,闲观万事岁月长🎆 📖希望我写的博客对你有所帮助,如有不足,请指正&#…

MUNK电源维修GmbH高频电源E230 G60/45 WRG-TFMYCT24

德国MUNK电源维修主要系列:ΡKA2,DCAC100,AS100,HS100,ESA2000, HSG2000,E230 G60/45;E230 G100,D400 G100全系列型号。 常见维修型号包括:D400 G100/75WRG-…

wsl下Linux使用chatglm.cpp记录

前言 Linux之前用的少,多数还是在Windows下操作,导致对Linux很陌生,而且思维定势的,一有什么操作,还是习惯性在Windows下操作。 在chatglm.cpp操作上也是如此,但是代码可不管你这些,该报错就报…

【面试题】微博、百度等大厂的排行榜如何实现?

背景 现如今每个互联网平台都会提供一个排行版的功能,供人们预览最新最有热度的一些消息,比如百度: 再比如微博: 我们要知道,这些互联网平台每天产生的数据是非常大,如果我们使用MySQL的话,db实…

Git 解决分支冲突

一、前言 一直习惯于 add commit push 的三步走,偶然间看到了一个评论说在 push 之前还有一个 pull,小小的疑问就埋在了我的心里。于是我就先了解了 pull 的工作原理,就是先拉取代码(fetch)再合并分支(mer…

【Qt 学习笔记】QWidget的enable属性 | API的介绍

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ QWidget的enable属性 文章编号:Qt 学习笔记 / 15 文章目录…

【IC前端虚拟项目】验证环境方案思路和文档组织

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 对于mvu的验证环境,从功能角度就可以分析出需要搭建哪些部分,再看一下mvu的周围环境哈: 很明显验证环境必然要包括几个部分: 1.模拟idu发送指令; 2.模拟ram/ddr读写数据; 3.rm模拟mvu的行为; …

小白学Java成长日记特别篇

晚上好,各位小伙伴。今天给大家带来的是Java的输出补充篇,前两篇说了输出和输入的大概,但我没有详细讲它俩,因此这篇文章来详细的聊一聊它俩。那么废话不多说,我们赶紧进入正题。 首先讲一讲这个Java的输出吧。 输出格…

IP协议中的四大支柱:DHCP、NAT、ICMP和IGMP的功能剖析

DHCP动态获取 IP 地址 我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的…

【C++第二阶段】文件操作

以下内容仅为当前认识,可能有不足之处,欢迎讨论! 文章目录 文件操作文件写入流程简单的demo写操作 文件读流程二进制写文件二进制读文件 文件操作 文件写入流程 写文件包括以下几个步骤 1.包含头文件 2.创建流对象 3.打开文件&#xff0…

重装系统前备份笔记

一、点查看自定义快捷键可以定义一些快速启动方式 然后用不习惯的快捷键也能在这里改 二、android studio 快捷键导出备份 导入方法: android studio ->file->import setting ->选择jar包即可 导出studio的设置方法: android …

【行业资讯】AI算力的需求推动光模块行业快速迭代

近期,由OpenAI发布的人工智能文生视频大模型Sora再次引起了不小的轰动,继ChatGPT之后,Sora的推出让AIGC(生成式人工智能)再度成为行业焦点,AI大模型的快速迭代升级对网络架构提出了更高要求,推动…

SpringBoot学习笔记三-原理分析

SpringBoot学习笔记三-原理分析 SpringBoot自动装配1.1 案例1.2 通过注解方式管理Bean1.3 小结1.4 Enable注解1.5 Import注解1.5.1 ImportSelector实现类1.5.2 导入ImportBeanDefinitionRegistrar 1.5 EnableAutoConfiguration1.6 案例 SpringBoot自动装配 当再pom.xml中导入对…