Spring复习-问题回答

1.什么是 spring,你对 spring 的理解?

Spring是一个轻量级,非侵入式的(不使用框架特定的类,感受不到框架)IOC和AOP一站式的java后端开发框架,简化企业开发。

2.spring 的优缺点

优点:

Spring是一个容器,可以管理对象(IOC);

创建对象和使用对象分离,降低耦合度;

使用AOP思想可以更加方便地扩展功能;

可以集成其他框架;

缺点:

配置繁琐

依赖jar太多

3.解释一下 IOC 和 AOP

IOC:

控制反转(Inverse of Control),将创建对象的权利反转给Spring框架,使用对象时,只需要从Spring容器中获取,不用关系创建过程。

AOP:

面向切面编程(Aspect Oriented Programming),   将程序中的非业务代码抽取,使非业务代码与业务代码相隔离,为目标类创建一个代理对象让代理对象调用目标类中的方法也就是非业务代码,提高了代码的复用率和灵活性,提高开发效率,降低了非业务代码与业务代码的耦合性。 应用场景:保存日志,权限管理,统一异常处理 ,事务管理。

4.IOC 和 DI 的区别是什么

IOC是一种设计思想,将对象的创建和组装交给容器管理;

DI是IOC的具体实现,通过依赖注入的方式实现对象之间的解耦,依赖注入可以通过构造函数、setter 方法或字段注入的方式实现。

spring框架:简介+依赖注入-CSDN博客

有详细举例 

5.spring 中注入对象的方式

XML配置文件

注解标签

6.自动注入的注解有哪些注解

  • @Autowired:由 Spring 提供
  • @Qualifier: 当有多个同一类型的 Bean 时,可以用@Qualifier(“name”)来指定。与@Autowired 配合使用.
  • @Resource:由 jdk提供

7.Springc 中的 bean 和 new 的对象由什么区别

bean是将对象的管理权限交给了Spring容器,而new对象是创建新的对象,需要手动管理其生命周期和依赖关系。

8.AOP 中的术语有哪些,通知有哪些

  1. 连接点(Joinpoint):类中可以被增强的方法(新增修改等);
  2. 切入点(pointcut):实际被增强的方法;
  3. 通知(Advice): 一个切面在特定的连接点要做的事情(方法被增强的功能),分为前置通知、后置通知、异常;
  4. 切面(Aspect):把通知添加到切入点的整个过程称为切面;
  5. 目标(Target): 代理的目标对象(连接点,切入点所在类);
  6. 代理(Proxy): 向目标对象应用通知时创建的代理对象。

9.Spring 实现 AOP 有哪几种方式

XML配置

注入

spring:AOP面向切面编程+事务管理_aop切面方法事务-CSDN博客

详细内容见上文。

10.谈谈 Spring 事务管理,实现方式有几种,原理是什么?

编程式:

声明式:注解和XML配置

Spring 事务管理的原理是基于 AOP 技术和 JDBC 事务 API 实现的。当应用程序中的方法被标记为需要事务管理时,在方法执行前,Spring 会创建一个代理对象,并在代理对象中织入事务管理的逻辑。当方法执行时,代理对象会自动开启事务、执行业务逻辑、提交或回滚事务,并在方法执行后释放连接,保证了数据库操作的完整性和一致性。事务管理的实现依赖于底层的数据源和JDBC 驱动,可以支持不同的事务管理方式和隔离级别。

11.声明式事务哪些场景下会失效

  • @Transactional 应用在非 public 修饰的方法上
  • 异常被 catch 捕获导致失效
  • 出现编译期异常
  • @Transactional 事务传播行为设置错误
  • 数据库引擎不支持事务
  • 同一个类中,使用非代理对象调用一个有事务的方法,导致事务错误

12.SpringWEB(springMVC)运行流程

DispatcherServlet的工作原理:

  1. 请求接收:当客户端发送一个HTTP请求时,DispatcherServlet会创建一个请求对象,并从中获取请求的URL路径、HTTP方法、请求头等信息。
  2. 请求映射:DispatcherServlet会使用HandlerMapping实例来根据请求的URL路径和HTTP方法来匹配一个或多个Handler实例。HandlerMapping实例负责将URL路径和HTTP方法映射到具体的Handler实例上。
  3. 请求解析:当一个Handler实例被选中后,DispatcherServlet会调用HandlerAdapter实例来解析请求,获取请求的参数、请求头等信息。
  4. 业务处理:当请求被解析后,Handler实例会调用业务逻辑来处理请求。这个过程通常由Controller类中的方法来完成。
  5. 视图渲染:当业务逻辑处理完成后,Handler实例会调用ViewResolver实例来选择一个合适的视图来生成HTTP响应。ViewResolver实例负责将业务逻辑的结果转化为HTML、XML等格式的视图内容。
  6. 响应生成:当视图被选择后,Handler实例会调用View类中的render方法来生成HTTP响应。这个过程通常包括设置响应头、生成响应内容等操作。
  7. 响应发送:当HTTP响应生成完成后,DispatcherServlet会将响应发送给客户端。这个过程通常由Servlet容器来完成。

13.spring 和 springboot 的关系区别

 SpringBoot是Spring的升级,简化Spring框架的搭建;SpringBoot的核心是:起步依赖,自动装配。

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

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

相关文章

HTML标签(二)

目录 表格标签 表格的主要作用 表格的具体用法 表头单元格标签 表格属性 表格结构标签 合并单元格 合并单元格的方式: 跨行合并: 跨列合并: 列表标签 无序列表 有序列表 自定义列表 表单标签 表单域 表单域的常用属性 表单元素…

阿里云幻兽帕鲁服务器租用价格表,免费?

幻兽帕鲁异常火爆自建幻兽帕鲁服务器不卡又稳定,继腾讯云推出幻兽帕鲁自建服务器教程和4核16G幻兽帕鲁专用特价游戏服务器后,阿里云坐不住了,直接推出特价4核32G和4核16G的palworld专属游戏机,另外还可以申请免费3个月的4核8G无影…

系统移植,GNU命令,Uboot移植

一.GNU命令 1、addr2line 把程序地址转换为文件名和行号 做调试 2、ar 建立,修改,提取归档文件 3、Id:GNU arm-none-linux-gnueabi-ld start.o main.o -Tmap.lds -o uart.elf 链接器 4、as 主要用来编译GNU编译器gcc输出的汇编文件&a…

git本地分支的合并/切换分支时遇到的问题

目录 第一章、本地分支的切换测试1.1)切换之前的master分支下文件内容1.2)切换到develop分支后修改文件1.3)切回master分支出现报错: 第二章、解决方式2.1)方式1:commit提交修改2.2)方式2&#…

电脑文件mfc140.dll丢失的解决方法指导,怎么快速修复mfc140.dll

mfc140.dll 文件的缺失是个普遍的问题,在日常使用中可能会时不时遇到。本文主要目的是详细介绍一旦遇到 mfc140.dll 文件缺失,应该如何进行下载和安装的步骤。不再赘言,下面就一起深入了解mfc140.dll丢失的解决方法指导。 一. mfc140.dll的作…

VBA即用型代码手册之改变主窗口标题栏名称及隐藏工作表

我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率,而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想,积木编程最重要的是积木如何搭建…

IMU用于室内定位

在室内环境中,全球定位系统(GPS)的信号受限,因此,开发高精度的室内定位技术成为了研究的热点。近日,来自印度的研究团队采用了粒子滤波算法和多传感器融合技术,探讨了IMU和UWB测量数据的融合&am…

Redis解决方案:NOAUTH Authentication required(连接jedis绑定密码或修改redis密码)

Redis解决方案:NOAUTH Authentication required(连接jedis绑定密码或修改redis密码) Java使用jedis连接redis时出现错误NOAUTH Authentication required 一、问题报错和原因 本地设置了redis的密码,但在远程连接时并没有输入密…

web系统架构基于springCloud的各技术栈

博主目前开发的web系统架构是基于springCloud的一套微服务架构。 使用的技术栈:springbootmysqlclickhousepostgresqlredisrocketMqosseurekabase-gatewayapollodockernginxvue的一套web架构。 一、springboot3.0 特性:Spring Boot 3.0提供了许多新特性…

绘图软件Visio入门必备!Visio版本|下载|替代软件|模具图库|使用技巧

Visio是什么软件? Visio,全称为Microsoft Visio,是微软旗下的一款图表和矢量图形应用程序,属于Microsoft 365系列的一部分。Visio最初是由前美国软件公司Visio Corporation于1992年推出,微软于2000年收购了Visio Corp…

【华为 ICT HCIA eNSP 习题汇总】——题目集6

1、IEEE 802.11g 标准支持的最大协商速率为()。 A、300Mbps B、150Mbps C、54Mbps D、1200Mbps 考点:无线局域网 解析:(C) IEEE 802.11系列标准如下表: 标准数据传输速率主要技术IEEE 802.111M…

20240124在GoogleEarth中输入GPS坐标查看位置

20240124在GoogleEarth中输入GPS坐标查看位置 2024/1/24 18:08 缘起:斯蒂夫●霍金邀请来自未来的时间旅行者赴宴! 有空我也想过去围观一下! 于是好奇地找了一下这个地方! https://movie.douban.com/subject// 与霍金一起了解宇宙…

7、机器学习中的数据泄露(Data Leakage)

找到并修复这个以微妙的方式破坏你的模型的问题。 数据泄露这个概念在kaggle算法竞赛中经常被提到,这个不同于我们通常说的生活中隐私数据暴露,而是在竞赛中经常出现某支队伍靠着对极个别feature的充分利用,立即将对手超越,成功霸占冠军位置,而且与第二名的差距远超第二名…

低代码是不需要代码?

吐槽 我看到网上把低代码直接定义为需要很少甚至不需要代码,这是一种错误的描述。试想向一个不了解这个概念的人这样解释,人家还以为你用“意念”写出来的应用程序。 我的理解 所谓低,指的是低量,少量,所以低代码应…

Leetcode刷题笔记题解(C++):LCR 153. 二叉树中和为目标值的路径

思路:利用回溯的思想,回溯的退出条件为当前节点为空,是符合路径的判断条件为路径和为目标值且叶子节点包含了,代码如下: /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *…

【Android】Android中的系统镜像由什么组成?

文章目录 总览Boot Loader 的加锁与解锁Boot 镜像内核RAM diskARM 中的设备树 (Device Tree) /System 和/Data 分区镜像参考 总览 各种Android设备都只能刷专门为相应型号的设备定制的镜像。 厂商会提供一套系统镜像把它作为“出厂默认”的 Android 系统刷在设备上。 一个完…

中国城市二氧化碳排放数据,农业服务业工业等行业排放量均有~有shp和excel格式

基本信息. 数据名称: 中国城市二氧化碳排放数据 数据格式: Shpexcel 数据几何类型: 面 数据坐标系: WGS84 数据来源:网络公开数据 数据字段: 序号字段名称字段说明1ny农业排放量(万吨)2fwy服务业排放量(万吨…

无刷电机学习-方波电调 电路篇

想要彻底的理解无刷电机的驱动,那必然少不了学习他的驱动电路和程序。这里用开源的AM32无刷电调(方波驱动)来作为学习无刷电机笔记。 https://github.com/AlkaMotors附上作者github地址 AM32_Hardware: 基于AT32MCU的AM32PCB另一位大佬开源…

【python文件】生成的csv文件没两行数据之间有一个空行

问题描述 用python代码将数据写入csv文件,但生成的csv文件没两行数据之间有一个空行,如下图所示: 解决办法 在open函数中添加newline,如以下代码所示,即可解决这一问题。 with open(r"C:\Users\xxx\Desktop\DR…

Java实现桃花峪滑雪场租赁系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 游客服务2.2 雪场管理 三、数据库设计3.1 教练表3.2 教练聘请表3.3 押金规则表3.4 器材表3.5 滑雪场表3.7 售票表3.8 器材损坏表 四、系统展示五、核心代码5.1 查询教练5.2 教练聘请5.3 查询滑雪场5.4 滑雪场预定5.5 新…