当前位置: 首页 > news >正文

Java面试题总结6

Spring中有哪些设计模式

简单工厂:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类

工厂方法:实现FactoryBean接口的bean是一类叫做factory的bean

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点

适配器模式:spring定义了一个适配接口,使得每一种Controller有一种对于的适配器实现类,让适配器代替controller执行相应的方法,

装饰器模式:动态的给一个对象添加一些额外的职责,就增加功能来说,Decorator模式相比生成子类更为灵活。

动态代理:切面在应用运行的时候被织入,在织入切面时,AOP容器会为目标对象创建动态的创建一个代理对象

观察者模式:spring事件驱动模型使用的就是观测者模式

策略模式:spring框架的资源访问Resorce接口,该接口提供更强的资源访问能力,采用的策略模式

Spring事务的实现方式和原理以及隔离级别

使用Spring框架时,有两种使用事务的方式,编程式和声明式(@Transaction)

事务这个概念是数据库层面的,spring只是基于数据库中的事务进行扩展(比如在某个方法上增加@Transaction注解开启事务)

在增加注解后,spring会基于这个类生成一个代理对象,会将这个代理对象作为bean,使用这个代理对象方法时,方法上存在@Transaction注解,那么代理逻辑会先把事务自动提交设置为false,然后再去执行原本的业务逻辑方法,如果执行业务逻辑方法没有出现异常,那么代理逻辑就会将事务进行提交,反之则将事务回滚

spring隔离级别就是数据库的隔离级别

read uncommitted(未提交读)

read committed(提交读,不可重复读)

repeatable read(可重复读)

serializable(可串行化)

数据库的配置隔离级别最高是Read Commited 而spring配置的隔离级别最高是Repeatable Read(以spring配置为主,如果spring设置的隔离级别数据库不支持,效果取决数据库)

spring事务传播机制

REQUIRED(spring默认的事务传播类型):如果当前没有事务,则自己新建一个事务,如果当前存在事务,则加入这个事务

SUPPORTS:当前存在事务,则加入当前事务,如果当前没有事务,就以非事务方法执行

MANDATORY:当前存在事务,则加入当前事务,如果当前事务存在,则抛出异常

REQUIRES_NEW:创建一个新事务,如果存在当前事务,则挂起该事务。

NOT_SUPPORTED:以非事务方式执行,如果当前存在事务,则挂起当前事务

NEVER:不使用事务,如果当前事务存在,则抛出异常

NESTED:如果当前事务存在,则在嵌套事务中执行,否则REQUIRED的操作一样(开启一个事务)

多个事务方法相互调用时,事务如何在这些方法传播

方法A是一个事务的方法,方法A执行过程中调用方法B,那么方法B有无事务以及方法B对事务的要求不同都会对方法A的事务具体执行造成影响,同时方法A的事务对方法B的事务执行也有影响,这个影响具体是什么就两个方法所定义的事务传播类型所决定

相关文章:

  • 【GPTs分享】每日GPTs分享之Image Generator Tool
  • 加密和签名的区别及应用场景
  • 详解字符串函数<string.h>(上)
  • 详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议
  • 回溯 Leetcode 47 全排列II
  • 鸿蒙ArkTs开发WebView问题总结
  • ChatGPT学习第三周
  • SpringBoot 自定义映射规则resultMap association一对一
  • Nacos配置
  • 动态规划--(算法竞赛、蓝桥杯)--二维费用背包
  • 如何学习自然语言处理之语言模型
  • 【投稿优惠|快速见刊】2024年图像,机器学习和人工智能国际会议(ICIMLAI 2024)
  • element-ui附件上传及在线查看详细总结,后续赋源码
  • StarRocks——中信建投基于StarRocks构建统一查询服务平台
  • WPF 【十月的寒流】学习笔记(1):DataGrid过滤
  • Unity将4个纹理图拼接成1个纹理
  • 类型字段定义影响WebApi传值及SqlSugar调用Select创建新对象
  • Vue3修改Element-plus语言与项目国际化
  • Kotlin:协程基础
  • 打造去中心化透明储蓄罐:Solidity智能合约的又一实践
  • 湖南小伙“朱雀玄武敕令”提交申请改名为“朱咸宁”
  • 印度媒体称印巴在克什米尔再次交火
  • 广汽集团一季度净亏损7.3亿元,同比转亏,总销量下滑9%
  • 交通枢纽、产业升级,上海松江新城有这些发展密码
  • 贵州赤水被指“整改复耕”存形式主义,当地部署耕地流出整改“回头看”
  • 国家发改委党组在《人民日报》发表署名文章:新时代新征程民营经济发展前景广阔大有可为