Spring整体架构

spring设计原理和整体架构 打开spring官网https://spring.io,我们可以看到围绕spring核心构建出的一个丰富的平台生态系统。在这个生态系统中,除了spring自身,还有许多值的注意的子项目。对我们java开发者而言,了解这些子项目,可以更好的使用spring,或者说,可以通过阅读源码,更深入地了解spring的设计架构和实现原理。 下面对spring的各个子项目进行简要介绍,帮助开发者熟悉spring整个生态系统的情况。 Spring Framework:spring项 阅读详情

Spring是封装的很清晰的一个分层架构,Spring架构图如下:

Spring IoC

包含最为基本的IoC容器BeanFactory的接口与实现,在这个Spring的核心包中,不仅定义IoC容器的最基本接口(BeanFactory),也提供一 系列这个接口的实现,如XmlBeanFactory就是一个最墓本的BeanFactory (IoC容器),从名字上可以看到,它能够支持通过XML文件配置的Bean定义信息。

除此之外,Spring IoC容器还提供了一个容器系列,如SimpleJndiBeanFactory, StaticListableBeanFactory等。为了让应用更方便地使用IoC容器,还需要在IoC容器的外围提供其他的支持,这些支持包括Resource访问资源的抽象和定位等。

另外,在BeanFactory接口实现中,除了前面介绍的像BeanFactory那样最为基本的容器形态之外,Spring还设计了loc容器的高级形态ApplicationContext应用上下文供用户使用,这些ApplicationContext应用上下文.如FileSystemXmlApplicationContext,ClassPathXmlApplicationContext.对应用来说,是IoC容器中更面向框架的使用方式, 同样,为了便于应用开发,像国际化的消息源和应用支持事件这些特性,也都在这个模块中配合IoC容器来实现。

Spring AOP

这也是Spring的核心模块,围绕着AOP的增强功能,Spring集成了AspectJ作为AOP的一个特定实现,同时还在JVM动态代理/CGLIB的基础上,实现了一个AOP框架,作为Spring集成其他模块的工具,比如TransactionProxy FactoryBean声明式事务处理,就是通过AOP集成到Spring中的。

在这个模块中,Spring AOP实现了一个完整的建立AOP代理对象,实现AOP拦截器,直至实现各种Advice通知的过程。在对这个模块中,AOP模块的完整实现是我们熟悉AOP实现技术的一个不可多得的样本。

Spring MVC

对于大多数企业应用而言,Web应用已经是一种普遍的软件发布方式,而在Web应用的设计中,MVC模式已经被广泛使用了。在Java的社区中,也有很多类似的MVC框架可以选择,而且这些框架往往和Web UI设计整合在一起,对于定位于提供整体平台解决方案的Spring,这样的整合也是不可缺少的。

Spring MVC就是这样一个模块,这个模块以DispatcherServlet为核心,实现了MVC模式,包括怎样与Web容器环境的集成,Web请求的拦截、分发、处理和ModelAndView数据的返回,以及如何集成各种UI视图展现和数据表现,如PDF, Excel等,通过这个模块,可以完成Web的前端设计。

Spring JDBC / Spring ORM

:在企业应用中,对以关系数据库为基础的数据的处理是企业应用的一个重要方面.而对于关系数据库的处理,Java提供了JDBC来进行操作,但在实际的应用中,单纯使用JDBC的方式还是有些繁琐,所以在JDBC规范的基础上,Spring对JDBC做了一层封装,使通过JDBC完成的对数据库的操作更加简洁。Spring JDBC包提供了JdbcTemplate作为模板类,.封装了基本的数据库操作方法,如数据的查询、更新等.另外,Spring JDBC还提供了RDBMS的操作对象,这些操作对象可以使应用以更面向对象的方法来使用JDBC,比如可以使用MappingSqlQuery将数据库数据记录直接映射到对象集合,类似一个极为简单的ORM工其。

除了通过Spring JDBC对数据库进行操作外,Spring还提供了许多对ORM工具的封装,这些封装包括了常用的ORM工具,如Hibernate,iBatis等,这一层封装的作用是让应用更方便地使用这些ORM工具,而不是替代这些ORM工具,比如可以把对这些工具的使用和Spring提供的声明式事务处理结合起来。同时,Spring还提供了许多模板对象,如HibernateTemaplate这样的工具来实现对Hibernate的驱动,这些模板对象往往包装使用Hibernate的一些通用过程,比如Session的获取和关闭、事务处理的关联等,从而把一些通用的特性实现抽象到Spring中来,更充分地体现了Spring的平台作用。

Spring事务处理

Spring事务处理是一个通过Spring AOP实现自身功能增强的典型模块。在这个模块中,Spring把在企业应用开发中事务处理的主要过程抽象出来,并且简洁地通过AOP的切面增强实现了声明式事务处理的功能。这个声明式事务处理的实现,使应用只需要在IoC容器中对事务属性进行配置即可完成,同时,这些事务处理的基本过程和具体的事务处理器实现是无关的,也就是说,应用可以选择不同的具体的事务处理机制,如JTA, JDBC, Hibernate等。因为使用了声明式事务处理.这些具体的事务处理机制被纳入Spring事务处理的统一框架中完成,并完成与具体业务代码的解耦,在这个模块中,可以看到一个通用的实现声明式事务处理的基本过程,比如怎样配置事务处理的拦截器,怎样读入事务配置属性,并结合这些事务配置属性对事务对象进行处理,包括事务的创建、挂起、提交、回滚等基本过程,还可以看到具体的事务处理器(如DataSourceTransactionManager、ibernateTransactionManager、JtaTran s actionMan ager等)是怎样封装不同的事务处理机制(JDBC, Hibernate, JTA等)的。

Spring远端调用

Spring为应用带来的一个好处就是能够将应用解耦。应用解耦,一方面可以降低设计的复杂性,另一方面,可以在解耦以后将应用模块分布式地部署,从而提高系统整体的性能。在后一种应用场景下,会用到Spring的远端调用,这种远端调用是通过Spring的封装从Spring应用到Spring应用之间的端到端调用。在这个过程中,通过Spring的封装,为应用屏蔽了各种通信和调用细节的实现,同时,通过这一层的封装,使应用可以通过选择各种不同的远端调用来实现,比如可以使用HTTP调用器(以HTTP协议为基础的),可以使用第三方的二进制通信实现Hessian/Burlap,甚至还封装了传统Java技术中的RMI调用。

Spring应用

从严格意义上来说,这个模块不属于Spring的范围。这部分的应用支持,往往来自一些使用得非常广泛的Spring子项目,或者该子项目本身就可以看成是一个独立的Spring应用,比如为Spring处理安全问题的Spring ACEGI后来转化为Spring子项目的Spring Security OAuth等。

这个Spring应用支持的部分还有一个重要的组成,那就是包括了其他的一些模块,这些模块提供了许多 Spring应用与其他技术实现的相关接口,比如与各种J2EE实现规范的接口,对JMS, JNID,JMX, JavaMail等的支持,Spring应用和Flex前端的接口,Spring应用移植到OSGi平台上运行的接口,通过这个模块的支持,使Spring应用可以便利和简洁地容纳第三方的技术实现,不但丰富了Spring应用的功能,而且丰富了整个Spring生态圈,使Spring应用得越来越广泛。

先了解Spring Framework基本架构,以后看源码就从这几个方面着手。

【项目实战】Spring体系结构与框架图 Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。 阅读详情

相关推荐

C# .NET6 TesseractOCR 图片文字识别

在你的项目中的tessdata-main文件夹找到这几个文件,并右键->属性设置为【如果较新则复制】有几个需要用到的模型,需要生成的时候复制到输出目录中,在项目中设置即可。TesseractOCR兼容 x86 与 x64。附 :ImageUtils.RegionCropping()源码。Visual Studio 2022 社区版。下载完成后解压在你的项目中,如图所示。从官方项目中获取模型数据, 网址为。

qq_44121554的博客 3854

Spring框架(JdbcTemplate)

1、什么是JdbcTempalte (1)Spring框架对JDBC进行封装,使用JdbcTemplate方面实现对数据库操作 2、准备工作 (1)引入相关jar包

m0_59860403的博客 285

压电阀控制器设计-总章

本文章用于回顾记录本人制作压电阀控制器的关键技术,本人所制作压电阀控制器已经上市得到应用,特在此对一些关键技术进行回顾记录,欢迎从事压电控制及压电阀相关人员一起讨论

qq_42712859的博客 849

spring ioc 架构图_一篇文章了解Spring 框架的设计理念与设计模式分析

Spring 的骨骼架构Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图:图 1 .Spring 框架的总体架构图从上图中可以看出 Spring 框架中的核心组件只有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。没有它们就不可能有 AOP、Web 等上层的特性功能。下面也将主要从这三个组件入手分析 Sp...

weixin_39997696的博客 482

基于STM32的家用新风系统智能控制器 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了家用新风系统智能控制器的全功能开发,覆盖多传感器数据采集、双模式控制、PID调速、异常报警、掉电记忆等核心功能,全程采用保姆式无跳步教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 464

别再硬编码了!Flowable工作流动态审批人配置全解析(Spring Boot集成版)

本文深入解析Flowable工作流在Spring Boot中的动态审批人配置技术,通过角色、部门等变量实现审批流程的灵活设计。文章详细介绍了架构原理、前端配置映射、动态候选组解析及查询优化方案,帮助企业提升审批流程的适应性和维护效率。

weixin_30919571的博客 135

Spring的配置与架构

目录Spring配置文件Spring相关APIApplicationContext的继承体系 ApplicationContext的实现类 getBean()方法使用Spring配置数据源Spring原始注解Spring整合Junit配置重点applicationContext.xml Spring相关API ApplicationContext的实现类 1) ClassPathXmlApplicationContext 它是从类的根路径下加载配置文件 推荐使用这种 2) FileSys

qq_45412648的博客 946

星网宇达Newton-M2设备安装及配置

主要介绍了星网宇达Newton-M2设备的配置过程

weixin_49353445的博客 2676

01.Spring整体架构

对Spring代码的理解不是一朝一夕就能快速完成的: 第一遍学习时,不用关注全部细节,不重要的代码可以先忽略掉,达到理解大体的架子及流程,避免第一次就陷入某个坑里出不来。 第二遍针对某个流程更深入的、有针对性的分析学习,当然遇到某个实在过不去的坎可以标记,后面再思考,毕竟是别人设计的,有些不是那么容易理解,可以使用 google,次数多了,总会有收获! 从Hello World开始,阅读Spring源码的Hello World: public void test() { Applicatio

Mustang 281

自动化控制软件:Beckhoff TwinCAT二次开发_(7).HMI开发基础

TwinCAT HMI是Beckhoff公司为TwinCAT自动化平台开发的专用HMI软件。Web技术基础:基于Web技术,支持HTML5、CSS3和JavaScript,可以轻松集成第三方库和框架。多平台支持:可以在多种设备上运行,包括PC、平板电脑和智能手机。高效开发:提供丰富的组件库和开发工具,简化开发过程。安全性:支持多种安全机制,确保数据和系统的安全性。可扩展性:支持自定义组件和脚本,满足不同应用场景的需求。Button:按钮组件,用于触发操作。Label:标签组件,用于显示文本信息。

2401_87715305的博客 982

Allegro 中复制一部分PCB到另一个PCB中去

引言:自从学了allegro后,我每天快乐地再拉线,一开心肯定出事情。不料今天一高兴,把本来在5层的铜皮直接在4层画起来了。不过,幸好我知道换层,才省了又要画铜皮的时间。好了,开干,如果要将其他层的铜皮换到想要换到的层上,就需要这个命令。

tianpu2320959696的博客 968

Spring的整体架构

Spring的整体架构 Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,如下图所示 这些模块被总结为以下几个部分: Core Container Core Container(核心容器)包含有Core、Beans、Context和Expression Language模块Core和Beans模块是框架的基础部分,提供IoC(转控制)和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真..

weixin_42408930的博客 1623

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【Spring详解一】Spring整体架构和环境搭建

介绍了Spring框架的整体架构和环境搭建过程。主要内容包括Spring框架的分层架构和各个模块的功能,以及如何使用Git和Gradle下载和编译Spring源码。

叉烧钵钵鸡的博客 1103

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Spring 整体架构

整体架构图 Core Container Core Container(核心容器)包含有Core、Beans、Context和Expression Language模块。 Core模块主要包含spring框架基本的核心工具类,spring的其他组件都要使用到这个包里的类,core模块是其他组件的基本核心。当然你也可以在自己的应用系统中使用这些工具类 Beans模...

weixin_37571795的博客 166

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

【手撕Spring - 深入篇】Spring 的设计理念和整体架构

Spring的设计目标是简化企业级应用程序的开发。它提供了一个轻量级的、非侵入式的编程模型,使开发人员可以更加专注于业务逻辑而不必过多关注底层的技术细节。

激流丶的博客 4570

《Spring源码深度解析》----Spring整体架构

《Spring源码深度解析》----Spring整体架构 Spring整体架构 前言: Spring从02年到现在,是java业界无可争议的开源框架王者,也形成了它自己的一个生态。尤其是现在的微服务在行其道,Springboot、SpringCloud的逐渐崛起,更加巩固了它的...

chetimi9680的博客 85

spring整体架构

一 架构划分 spring的架构可以划分为以下几个层次: 1.核心模块:包括IOC,AOP; 2.中间组件:包括封装的JavaEE服务,驱动组件如jdbc,事物处理等; 3,上层应用 二 模块概述 spring的整体架构图如图所示: 下面详细介绍一下各个模块: 1.spring IOC     此模块中包含了IOC容器最基本的接口和它的实现,也就是说在此核心包中,

ganpuzhong42的博客 676
上一篇: spring源码学习第一步,找源码导入项目
下一篇: IoC原理之IoC容器系列的设计与实现
She_lock
博客等级 码龄12年 157粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值