Spring框架架构

这是Spring Framework Architecture的概述。 了解Spring Framework的各个组成部分如何组织以及如何相互联系。 如果您想了解什么是Spring框架及其功能,请阅读Spring框架简介 。

总览

Spring是一个模块化框架 。 它不是作为一个软件包或多个模块捆绑在一起的。 各种弹簧组件作为独立模块提供。 这使我们可以灵活地使用所需的内容,而剩下的就剩下了。 例如,如果我们要使用Spring JMS模块,则无需将Spring Web Module添加到我们的项目中。 这使我们的应用重量轻且集中。

Spring框架

Spring建筑

让我们深入了解Spring Architecture(参考图),在本教程的后续部分中,我们将深入研究每个模块。 如图所示,Core是Spring框架的基础。 其他模块,例如Web,数据访问和其他模块集。 测试模块(也基于内核)是独立的,因为它与测试应用程序的弹簧支持组件有关。

核心容器

核心容器是Spring的心脏。 它包含一些基本框架类和工具。 整个Spring框架基于Core Container的顶部

Spring框架

核心容器模块

小费:
如果您是一个完整的新手。 核心容器是您首先要熟悉的东西。 如果您对此有所了解,则可以轻松选择任何Spring模块。

弹簧芯

核心模块包含基本的Spring Framework类,包括依赖注入(DI)和控制反转(IOC)。 Spring Core可在Spring Core Repo中获得 。 无论您要构建哪种类型的Spring应用程序,您都将始终对Spring Core具有直接或间接的依赖性。

Spring Bean

Spring Bean模块管理Bean的生命周期。 在Spring Framework中,Bean是在Spring中注册的任何Java类,并且Spring管理这些bean类。 Spring Bean模块具有一个Bean Factory ,该工厂创建Bean实例,解析Bean与Bean的依赖关系,并根据名称或类型自动装配Bean。
可以在Spring Beans Repo上找到Spring Bean模块。

春天语境

我们了解到,Spring Bean负责管理Spring Bean。 这些Spring Bean在称为Context的上下文中定义。 在Spring,每个对象都是一个Bean,让它成为配置条目或用户定义的类(例如Employee)。 所有这些bean,它们的构造函数或工厂方法以及相关性都在Context中定义。 通过Context访问Bean。

在大多数情况下,Spring Context是在Spring Application启动时启动的,因此称为Application Context。 链接到Spring Context Repo 。

SpEL

SpEL代表Spring Expression Language ,它是功能强大的完整表达语言。 它用于在运行时将表达式解析为值。 SpEL可以在运行时查询对象图,并且可以在基于XML或基于注释的Bean定义和Bean配置中使用。 “运行时”一词在这里非常重要,因为可以根据运行时配置或其他表达式的值来评估表达式。
可以在Spring Expression Language Repo中找到 。

Spring网

从名称本身就很明显, Spring Web组件用于构建Web应用程序。 使用Spring Web模块,我们可以构建完整的MVC应用程序,拦截器,Web服务,Portlet。

Spring框架

网络模块

让我们简要看一下Web组件。

Spring Web和Servlet

Spring Web和Servlet提供了许多用于构建Web集成的功能。 在以上部分之一中,我们看到了什么是应用程序上下文。 Spring Web提供了类似于上下文的Web应用程序上下文。 Spring Web提供了servlet的抽象以及控制反转(IOC)。
可以在Spring Web Repo上找到。

Spring Web还有另外一个组件,那就是Spring MVC。 Spring MVC提供了一种用于构建基于Model View Controller的Web应用程序的机制。 Spring MVC具有“视图和操作”的概念。 视图表示用户界面或使用者,而操作是服务于Web请求的组件。
可以在Spring Web MVC Repo中找到 。

Spring Web套接字

Spring Web Sockets支持构建Web Sockets。 Web套接字是Web应用程序中服务和使用者之间的一种隧道。 在HTTP连接中,客户端必须在服务器上轮询是否有更新。 使用Web套接字,它们之间都存在双向通信套接字,因此,即使服务器也可以将消息直接推送到客户端。
可以在Spring Web Sockets Repo中找到 。

Spring Web Portlet

Spring Web Portlet支持构建Web Poerlet。 Portlet是可插拔的用户界面软件组件,可以在Web门户中进行管理和显示。 换句话说,它是一种在单个用户界面上显示多个应用程序(portlet)的用户界面的机制。 通常,这些portlet是可插拔和可安排的。
可以在Spring Web Portlet Repo中找到 。

Spring数据访问

Spring Data Access是一组模块,用于访问各种格式的数据,包括数据库,消息传递和XML。 让我们简要介绍一下这些模块

Spring框架

资料存取模组

Spring JDBC

Spring JDBC通过Java JDBC API提供抽象。 当我们需要从数据库访问数据时,通常需要处理语句,查询,结果集,尤其是异常。 Spring JDBC抽象消除了所有这些复杂性,并提供了JdbcTemplate来轻松访问数据。 它还提供了迭代和映射结果集的方法。
可以在Spring JDBC Repo中找到。

SpringORM

Spring ORM提供了与各种ORM实现集成的支持。 ORM代表对象关系映射框架,其中数据被逐字段映射到Java Object。 使用ORM框架,可以用数据填充纯Java对象,并将其传递到ORM API,以纯Java对象的形式存储和类似地检索数据。 Spring提供了对流行的ORM框架(如Hibernate,JDO和JPA)的支持。
可以在Spring Object / Relational Mapping Repo找到该驱动程序 。

SpringJMS

JMS代表Java Messaging Service,它以消息的形式定义发布者和订阅者通信的规范。 Spring JMS提供了对各种JMS实现(例如ActiveMQ和RabbitMQ)的抽象。
可以在Spring JMS Repo中找到。

SpringOXM

Spring OXM提供了Java OXM实现的抽象。 Java OXM(对象XML编组)规范定义了以XML形式传输和访问数据的方式。 OXM有各种实现,例如JAXB和XStream。
可以在Spring Object / XML Marshalling Repo上找到Cab。

Spring交易

Spring Transactions Management API提供了管理数据对象和数据库事务的统一方法。 Transaction API支持程序化和声明性事务管理。
可以在Spring Transaction Repo中找到。

杂项模块

现在我们到达了教程的最后一部分。 在本节中,我们将学习Spring重要的独立模块,可以将其视为杂类。

Spring框架

杂项模块

SpringAOP

Spring AOP是面向方面编程的实现。 方面是对象需要执行的任何辅助任务。 每个对象都是Java的专门职责,除此之外,它可能还必须做一些次要的事情,例如日志记录或异常处理。 面向方面的编程提供了一种机制,可以从对象中消除此类次要责任,并将其赋予代理对象,从而使原始对象加倍。
可以在Spring AOP Repo中找到。

春天的方面

我们已经了解了什么是面向方面的编程。 Spring Aspects提供了与其他面向方面的编程实现(如AspecJ)集成的统一方法。
可以在Spring Aspects Repo中找到。

弹簧仪表

Spring Instrumentation模块为类检测提供支持。 该工具用于监视应用程序的性能。 它监视各种对象以诊断应用程序问题并记录它们。
可以在Spring Instrument Repo找到。

Spring信息

Spring Messaging提供了与消息传递系统集成的支持。 该模块提供了与各种消息传递服务进行交互的简化且统一的方式。
可以在Spring Messaging Repo中找到。

摘要

在本文中,我们研究了Spring Framework Architecture。 Spring是一个具有多个模块的巨大框架。 核心容器是Spring中所有事物的骨干,所有其他模块都依赖于核心。 除了核心,我们还研究了Spring Web,Spring Data Access和一些其他模块。
在接下来的部分中,我们将继续探索Spring Framework。 敬请关注!

翻译自: https://www.javacodegeeks.com/2019/02/spring-framework-architecture.html

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

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

相关文章

国家开放大学2021春1073法律文书答案

教育 教育 试卷代号:1073 2 0 2 1年春季学期期末统一考试 法律文书 试题答案及评分标准 (供参考) 2021年7月 一、单项选择题(本大题共6小题,每小题3分,共18分。在每小题列出的四个备选答案中只 有一个符合…

【渝粤教育】广东开放大学 社会工作行政 形成性考核 (52)

选择题 题目:社会工作行政的一般环境是指从社会工作行政组织内部对社会工作行政的过程、方法等产生直接影响的各种因素的总和 题目:社会工作行政环境是指对社会工作行政的过程、方法、程序、效率、效果等产生影响的各种力量和条件因素的总和。 题目&…

php中n12br,PHP常见字符串操作函数与用法总结

一、字符串的格式化1、字符串的格式化trim()函数可以去除字符串的开始位置和结束位置的空格,并将结果字符串返回,默认情况下去除的字符是换行符和回车符(\n和\r),水平和垂直制表符(\t和X0B)ltrim()函数只从字符的开始处(左边)去除空格rtrim()函数只从函数…

php变量 声明提升,TypeScript:let和const变量声明

在开始介绍let和const变量声明前,有必要先了解下JavaScript里的var变量声明。var变量声明全局声明var声明在函数体外,所声明的变量为全局变量。var name "张三";var所声明的全局变量会作为window的一个属性,可以使用"."…

面向切面编程应用_应用面向方面的编程

面向切面编程应用1.引言 面向方面编程的主要目标是将跨领域关注点分离。 当我们谈论跨领域的关注时,我们指的是在我们的系统或应用程序中的多个地方使用的通用功能。 这些概念包括: 记录中 交易管理 错误处理 监控方式 安全 实现这种分离的方法是将…

【渝粤题库】陕西师范大学201541 合同法作业

《合同法》作业 一、单项选择题 李某将自己房屋租给张某使用,租给一段时间后,双方经过商议达成房屋买卖合同,则该房屋的所有权发生转移的特别生效要件是下列哪种行为? A.占有改定 B.简易交付 C.登记 D.公证 2.甲念高三…

php 字符串索引值,PHP:字符串索引不一致?

我创建了一个函数,该函数从硬编码的单词列表中随机生成一个短语.我有一个函数get_words(),该函数具有一串硬编码的单词,将其转换成一个数组,然后重新排列并返回.get_words()由generate_random_phrase()调用,它会反复遍历get_words()n次,并且在每次迭代时,将n个单词连接到最终的…

【渝粤题库】陕西师范大学202013 民法专论 作业

《民法专论》作业 一、单选题 1、为了保护民事主体的合法权益,调整民事关系,维护社会和经济秩序,适应 ,弘扬社会主义核心价值观,根据宪法,制定本法。下划线处应填(  ) A. 社会主义…

使用JUnit5对DynamoDB应用程序进行单元测试

在之前的文章中,我描述了新的Java 2 AWS SDK,它为调用不同AWS服务的Java客户端提供了非阻塞IO支持。 在本文中,我将介绍一种用于单元测试AWS DynamoDB调用的方法。 有几种方法可以启动DynamoDB的本地版本– 1. AWS提供了一个DynamoDB本地 …

【渝粤题库】陕西师范大学202421 教育管理心理学 作业 (专升本)

《教育管理心理学》作业 一、名词解释 人际知觉 2.态度 3.内化 4.社会知觉角色知觉 6.晕轮效应 7.激励因素 8.经济人退化 10.首因效应 11.激励 12.需要 13.保健因素 14. 挫折 15.制…

centos 安装php扩展gd,linux(centos)下为php添加添加GD扩展

yum -y install libjpeglibjpeg-devel libpng libpng-devel freetype freetype-devel 安装依赖库yum -y install libjpeg-devel1.首先切换到php源码目录:/usr/local/php-5.6.29/ext/gd2.利用phpize生成gd扩展文件,/usr/local/php/bin/mipsel-linux-phpize, ls 或者 …

【渝粤题库】陕西师范大学209013 计量经济学 作业

一、名词解释 1.偏回归系数 2.异方差性 3.虚拟变量 4.间接最小二乘法 5.调整的多元可决系数 6.序列相关性 7.滞后变量 8.行为方程 9.受约束回归 10.多重共线…

【渝粤题库】陕西师范大学210023 学前儿童社会教育 作业(专升本)

《学前儿童社会教育》作业 一、单选题 1.我国有关儿童社会性发展研究得到迅速发展的年代是( ) A.20世纪30年代 B.20世纪70年代 C.20世纪80年代 D..20世纪90年代 2.安斯沃思将婴幼儿的…

php numeric乘法,PHP is_numeric()用法及代码示例

is_numeric()函数是PHP中的内置函数,用于检查传入函数中作为参数的变量是数字还是数字字符串。该函数返回一个布尔值。用法:bool is_numeric ( $var )参数:该函数接受一个必须的单个参数,如下所述:$var:此输入参数是变量&#xff…

【渝粤题库】陕西师范大学292161社会保障概论 作业(专升本)

《社会保障概论》作业 一、填空题 1、英国政府于1601年颁布了 ,标志着社会保障制度的萌芽。 2、 是社会保障制度的核心部分, 是社会保障的最高层次; 是社会保障最后一道防线。 3、就业保障制度包括: 、 、 三方面内容。 4、工伤保…

jooq权限配置_将jOOQ与Spring结合使用:配置

jooq权限配置我遇到了由ORM引起的性能问题。 尽管我不得不承认大多数这些问题确实是由您造成的,但是我开始认为在只读操作中使用ORM是不值得的。 我开始寻找实现这些操作的替代方法。 这就是我遇到jOOQ的方式 ,它指出: jOOQ从您的数据库生…

【渝粤题库】陕西师范大学600001物理化学(上) 作业(专升本)

《物理化学(上)》作业 一.单选题 1.下列物理量中属于强度性质的是 A. H B. S C. p D. G 2.298.2K时,1mol的氧气(可视为理想气体)经等温可逆膨胀后,体积胀大10倍,对于该过程来说, 其Δ…

employee.java,Java基础系列(六):对象与类(上)

概述类(class)是构造对象的模板。由类构造对象的过程称为创建类的实例。封装从形式上看,封装是将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域,而操纵数据的过程称之为方法。对于每个特定的类实例…

【渝粤题库】陕西师范大学800007 地理信息系统

《地理信息系统》作业 一.名词解释 1.TIN       2 .缓冲区分析 3.元数据 4. 地理信息系统 5.空间数据库  6.拓扑关系 7.矢量结…

国家开放大学2021春1080工程数学(本)题目

教育 教育 试卷代号: 1080 2021年春季学期期末统一考试 工程数学(本) 试题 2021年7月 一、单项选择题(每小题3分,共15分) 1.设方阵可逆,则下列命题中不正确的是( ). A. B.线性方程组必有非零解…