spring框架的基本结构有哪些(Spring功能总结)

2026-05-27 08:15:02 0

spring框架的基本结构有哪些(Spring功能总结)

大家好,关于spring框架的基本结构有哪些很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于Spring功能总结的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

本文目录

Spring功能总结

1 什么是spring ?
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架.
spring的设计思想是,单例模式和工厂模式
2 spring的四大特点(优点)
轻量级,低侵入的设计
Spring的DI机制降低了业务对象替换的复杂性
spring不依赖于web容器,独立于各种应用服务器, Write Once,Run Anywhere(一次编译到处运行)
高度开放性:Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部,它的架构仍然是内在稳定的
3 spring的组成部分 七大模块
Spring Core:Spring的基石,提供了Spring的最主要的核心机制:控制反转和依赖注入
Spring Context:提供了Spring的上下文信息,如:国际化,验证等
Spring Web支持:简化了处理多部分请求
Spring MVC框架支持:一个全功能的构建 Web 应用程序的 MVC 实现,MVC 容纳了大量视图技术,其中包括 JSP、Velocity等。
Spring Dao支持:Spring的Dao支持大大的简化了JDBC操作数据库所带来的繁琐
Spring ORM支持 pring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate、iBatis和TopLink。
所有这些都遵从Spring的通用事务和DAO异常层结构。
Spring AOP:面向方面编程,提供了事务,日志,权限,安全等处理机制
4 spring的核心机制
1).控制反转(IoC/Inverse Of Control):调用者不再创建被调用者的实例,由spring框架实现(容器创建)所以称为控制反转。
2).依赖注入(DI/Dependence injection) :容器创建创建好实例后再注入调用者称为依赖注入。
什么是ioc容器
bean工厂(BeanFactory) 和 应用上下文(Application Context)
依赖注入的优点,代码将更加清晰,Spring管理bean的灵巧性,
bean与bean之间的依赖关系放在配置文件里组织,
不再担心对象之间的依赖关系之后,实现更高层次的松耦合将易如反掌
依赖注入的方式 (为什么叫依赖注入 类的四种关系 )
(1)set注入(2)构造注入(3)lookup方法注入
spring 对dao的支持
《1》dao模式优点
减少开发代码量 提高工作效率
降低系统资源消耗 提高系统性能
业务逻辑层与持久层(数据层)的分离,使数据与操作更为清晰。
数据访问独立到了一层,修改具体实现类,不影响系统的架构运行
《2》DAO模式的四个组件
DAO接口
DAO接口实现类
pojo值对象
DAO实例的定位(工厂 或 spring注入)
Spring 面向方面编程(AOP) spring支持AOP功能,AspectJ更完美的支持AOP
AOP 的核心构造是方面,它将那些影响多个类的行为封装到可重用的模块中, 将系统中通用的需求功能隔离出来形成一个功能模块,
并将这个模块切入到应用程序当中, AOP追求的是调用者与被调用者的解耦,从而消除了OOP引起的代码混乱和分散问题,
增强了系统的可维护性和代码的重用性
方面:哪方面 系统中分为业务方面的和非业务方面 Spring主要集中于非业务方面 如(日志、事务、安全、权限等)
1.面向方面与面向切面:AOP的实现中的几个重要的概念:
1.1如果理解为“面向方面编程”:
针对于某一模块进行专门的编写(如:面向日志编程,面向事务编程,面向权限等),其意思就是说面向具体的某个功能模块来编程,然后将其切入到项目中
1.2如果理解为“面向切面编程”:
连接点:程序执行过程中明确的点,如方法的调用或者异常的抛出,举个例子,如果是一个权限系统的话,要控制到类中的某一个具体的方法,那么这个方法就是一个连接点
切入点:连接点的集合,如类中多个个方法的调用, 还是以权限系统来举例,如果要控制一个类中的多个方法的话,那么这几个方法(也即是几个连接点)组成了一个切入点
切面:如果要控制多个类中的多个方法,那么这多个类就组成了一个切面
连接点 --- 切入点 ---- 切面(三者之间的关系可以形象的理解为:点--线--面)
引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,
你可以使用一个引入使任何对象实现IsModified接口,来简化缓存。
AOP实现过程中的几种不同的方式:
拦截一类中所有的方法(连接点)
拦截一个类中的某些符合条件的方法(切入点)
拦截多个类中的符合条件的方法(切面)
2.1.连接点 --- 切入点 ---- 切面 --- 方面(解决方案的切入点)
2.2.目标对象(也就是:寻找被处理的类)
2.3.AOP代理(具体实现),分为二种,
JDK动态代理(面向接口)
Cglib代理(面向具体类)
2.4.处理(Spring AOP处理)或者叫通知,aop框架在特定的连接点执行的动作,Spring提供了五种处理方式
2.5 Advisor=(处理+切入点)
4 利用aop进行事务编程 Spring事务配置的五种方式 (掌握Spring事务体系图)
传统上,J2EE开发者有两个事务管理的选择: 全局 或 本地事务(局部事务)。全局事务由应用服务器管理,使用JTA。
局部事务是和资源相关的,比如一个和JDBC连接关联的事务
事务种类分为: jdbc事务(局部事务) jta事务(全局事务) 容器事务
1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。局部事务
2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。全局事务
3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用
两种事务的比较
1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。
2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂
13.2 Spring与Struts2的整合
由于Struts2得强大可插拔式设计,使得整合spring的工作变得异常简单,
struts2-spring-plugin-2.0.8.jar就是支持spring的插件包
把struts2支持spring的插件包jar拷贝到项目中

Spring框架的作用及基本使用

1.Spring框架的作用

Spring框架主要用于与其他技术(struts,hibernate等)进行整合,

可将应用程序中的Bean组件实现低耦合关联.最终可以提高系统扩展

和维护性.

将来我们利用Spring框架管理系统的各个组件(Action,Service,DAO)

.采用Spring的IOC和AOP机制实现各组件的关联.从而实现了低耦合调用.增强了系统可维护性和扩展性.

2.Spring框架容器的基本使用

Spring框架的核心是提供了一个容器,该容器可以对Bean组件进行管理,例如创建Bean对象,销毁一个Bean对象等操作.此外该容器还具有IOC和AOP高级特性,将Bean对象调用解耦.

*1)Spring容器配置

创建工程,在src下引入applicationContext.xml配置文件,并添加spring-ioc开发包.

在applicationContext.xml中声明定义Bean组件格式:

*2)Spring容器如何实例化

BeanFactory--ApplicationContext(推荐)

ApplicationContext ac =

new ClassPathXmlApplicationContext("xml配置文件");

ac.getBean("标识符");//获取Bean组件对象

3)Spring容器如何管理Bean组件

*a)控制Bean组件对象的创建方式

在元素利用scope属性.Spring可以控制Bean对象创建方式. 默认情况下scope属性可以用singleton和prototype两种值.

singleton:采用单例方式创建(默认采用)

prototype:采用(原型)非单例方式创建

---------------------------------------------------

在以后Web环境中,scope还可以有几个扩展属性值.

request:将Bean对象与request对象绑定.

session:将Bean对象与session对象绑定.

---------------------------------------------------

b)Bean组件对象的创建时机

singleton模式:当实例化Spring容器时,会创建所有的单例对象.

可以在元素中使用lazy-init属性控制,将对

象创建时机延迟到第一次调用getBean方法.

prototype模式:在调用Spring容器的getBean方法时创建.

c)指定Bean组件对象创建后初始化和销毁处理方法

指定初始化方法:利用元素的init-method属性指定

指定销毁方法:利用元素的destroy-method属性指定.

该属性仅对scope="singleton"有效.

如果你还想了解更多这方面的信息,记得收藏关注本站。

spring框架的基本结构有哪些(Spring功能总结)

本文编辑:admin

更多文章:


css排版布局网站(为什么网站要用div+css排版)

css排版布局网站(为什么网站要用div+css排版)

各位老铁们好,相信很多人对css排版布局网站都不是特别的了解,因此呢,今天就来为大家分享下关于css排版布局网站以及为什么网站要用div+css排版的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录为什么网站要用d

2026年6月11日 02:00

diverse culture课件(英语邮件范例:旅游英语怎么表达)

diverse culture课件(英语邮件范例:旅游英语怎么表达)

这篇文章给大家聊聊关于diverse culture课件,以及英语邮件范例:旅游英语怎么表达对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录英语邮件范例:旅游英语怎么表达印度文化英语ppt介绍英语邮件范例:旅游英语怎么表达De

2026年3月2日 00:30

附近ui设计培训机构(ui设计哪里有培训班)

附近ui设计培训机构(ui设计哪里有培训班)

这篇文章给大家聊聊关于附近ui设计培训机构,以及ui设计哪里有培训班对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录ui设计哪里有培训班ui培训设计哪里好ui设计培训机构哪好ui设计培训什么机构好丽江附近的网页UI设计培训机构

2025年9月15日 12:45

字符串全排列(abcdefgh由这八个字符构成的全排列字符串,要求不能出现以下子串:abc ,de,gh.求能有)

字符串全排列(abcdefgh由这八个字符构成的全排列字符串,要求不能出现以下子串:abc ,de,gh.求能有)

本篇文章给大家谈谈字符串全排列,以及abcdefgh由这八个字符构成的全排列字符串,要求不能出现以下子串:abc ,de,gh.求能有对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解

2026年3月9日 23:15

物联网系统开发(物联网应用技术就业方向及前景)

物联网系统开发(物联网应用技术就业方向及前景)

本篇文章给大家谈谈物联网系统开发,以及物联网应用技术就业方向及前景对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录物联网应用技术就业方向及前

2025年9月20日 08:00

javascript 字符串转数字(如何用JavaScript对字符串进行解析并计算出结果)

javascript 字符串转数字(如何用JavaScript对字符串进行解析并计算出结果)

大家好,如果您还对javascript 字符串转数字不太了解,没有关系,今天就由本站为大家分享javascript 字符串转数字的知识,包括如何用JavaScript对字符串进行解析并计算出结果的问题都会给大家分析到,还望可以解决大家的问题

2025年5月28日 03:00

如何使用u盘安装linux系统(怎么用u盘安装过linux详细步骤!)

如何使用u盘安装linux系统(怎么用u盘安装过linux详细步骤!)

今天给各位分享怎么用u盘安装过linux详细步骤!的知识,其中也会对怎么用u盘安装过linux详细步骤!进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录怎么用u盘安装过linux详细步骤!怎么把linux系统装

2026年1月10日 17:45

java int占几个字节(java int 是几位)

java int占几个字节(java int 是几位)

大家好,如果您还对java int占几个字节不太了解,没有关系,今天就由本站为大家分享java int占几个字节的知识,包括java int 是几位的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录java int

2025年11月8日 02:15

计算机c语言是一种什么语言(c语言是什么)

计算机c语言是一种什么语言(c语言是什么)

“计算机c语言是一种什么语言”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看计算机c语言是一种什么语言(c语言是什么)!本文目录c语言是什么c语言是计算机的什么语言c语言是一种什么语言c语言是什么C语言是种什么语言c语言是什

2025年10月25日 17:00

domestic abuse only happens(帮我翻译一下这段英语 谢谢啦 ~!!!!!!!!!!!!!!!!!!!)

domestic abuse only happens(帮我翻译一下这段英语 谢谢啦 ~!!!!!!!!!!!!!!!!!!!)

这篇文章给大家聊聊关于domestic abuse only happens,以及帮我翻译一下这段英语 谢谢啦 ~!!!!!!!!!!!!!!!!!!!对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录帮我翻译一下这段英语 谢谢

2026年4月17日 08:45

layer是可数名词吗(英语量词的用法)

layer是可数名词吗(英语量词的用法)

这篇文章给大家聊聊关于layer是可数名词吗,以及英语量词的用法对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录英语量词的用法cover(反义词) appear(反义词)layer什么意思bottom up 的意思是什么,哪位

2025年10月10日 23:15

settimeout怎么停止(window.setTimeout 停止 取消)

settimeout怎么停止(window.setTimeout 停止 取消)

各位老铁们好,相信很多人对settimeout怎么停止都不是特别的了解,因此呢,今天就来为大家分享下关于settimeout怎么停止以及window.setTimeout 停止 取消的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起

2025年6月10日 15:15

word如何设置图片居中?网页中如何用HTML/CSS实现文字居中于图片

word如何设置图片居中?网页中如何用HTML/CSS实现文字居中于图片

“图片居中”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看word如何设置图片居中?网页中如何用HTML/CSS实现文字居中于图片!本文目录word如何设置图片居中网页中如何用HTML/CSS实现文字居中于图片在Word中插

2025年6月28日 16:15

php教程视频谁的好(哪里的php视频教程不错我想自学php)

php教程视频谁的好(哪里的php视频教程不错我想自学php)

大家好,今天小编来为大家解答以下的问题,关于php教程视频谁的好,哪里的php视频教程不错我想自学php这个很多人还不知道,现在让我们一起来看看吧!本文目录哪里的php视频教程不错我想自学phpPHP视频教程谁的比较好谁有黑马程序员的PHP

2026年5月11日 14:15

unity 命名空间(为什么unity无法将脚本添加到空的对象)

unity 命名空间(为什么unity无法将脚本添加到空的对象)

“unity 命名空间”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看unity 命名空间(为什么unity无法将脚本添加到空的对象)!本文目录为什么unity无法将脚本添加到空的对象Unity中各类加载方式的比较Unity

2026年1月21日 21:00

decimal在python(python字符的精度不够,用什么填充)

decimal在python(python字符的精度不够,用什么填充)

大家好,关于decimal在python很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于python字符的精度不够,用什么填充的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对

2026年8月13日 02:15

湖南网站建设公司(长沙可迅网络科技有限公司怎么样)

湖南网站建设公司(长沙可迅网络科技有限公司怎么样)

这篇文章给大家聊聊关于湖南网站建设公司,以及长沙可迅网络科技有限公司怎么样对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录长沙可迅网络科技有限公司怎么样湖南半点科技有限公司怎么样请问:湖南有哪些可靠的软件开发公司求介绍湖南唐唐

2025年11月29日 06:15

mysql大数据查询优化(学习MySQL如何优化查询速度)

mysql大数据查询优化(学习MySQL如何优化查询速度)

大家好,关于mysql大数据查询优化很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于学习MySQL如何优化查询速度的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助

2025年10月29日 02:15

禁止iframe嵌套(https页面iframe嵌套http的页面,弹出警告,怎么解决)

禁止iframe嵌套(https页面iframe嵌套http的页面,弹出警告,怎么解决)

大家好,关于禁止iframe嵌套很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于https页面iframe嵌套http的页面,弹出警告,怎么解决的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关

2026年5月5日 09:45

shell脚本切换路径(shell脚本 如何切换当前目录)

shell脚本切换路径(shell脚本 如何切换当前目录)

本篇文章给大家谈谈shell脚本切换路径,以及shell脚本 如何切换当前目录对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录shell脚本

2025年7月19日 03:30

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索