java八股 spring + mybatis

Spring常用注解(绝对经典)_spring注解-CSDN博客

框架篇-02-Spring-单例bean是线程安全的吗_哔哩哔哩_bilibili

1.spring.bean 单例 + 线程不安全

2.AOP

项目里可以说记录用户登录日志,利用request去获取姓名、ip、、请求方式、url,时间

Spring事务Transactional和动态代理(三)-事务失效的场景 - 骑着龙的羊 - 博客园 (cnblogs.com)

3.事务失效

深入理解 Spring 事务:入门、使用、原理-腾讯云开发者社区-腾讯云 (tencent.com)

框架篇-04-Spring-事务失效的场景_哔哩哔哩_bilibili

spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客

3.1 非检查异常被try catch,spring收不到消息

如果一个spring事务里两组数据库操作中间有一个异常操作,没有被try catch的话。那么java代码报错,事务会自动回滚,没问题。

如果把异常try catch处理了,容易导致事务失效,前一段数据库操作做了,异常后面一段没做,直接跳到catch里了。

3.2 抛出检查异常 spring不会回滚

3.3事务方法非public

3.4其他场景

spring 事务失效的 12 种场景_spring 截获duplicatekeyexception 不抛异常-CSDN博客

Spring事务Transactional和动态代理(三)-事务失效的场景 - 骑着龙的羊 - 博客园 (cnblogs.com)

我项目中类内方法调用事务方法导致事务失效,因为this不被spring管理,要获取上下文代理对象去调用,就能执行事务。

4.bean的生命周期(印象不深)

5.bean的循环引用(类之间互为属性)-->三级缓存

需要对bean生命周期有了解,这里bean只构造出一个半成品,但是没有后面的初始化过程

 

一级缓存不能解决,一二级配合可以解决。

把二级缓存半成品A当成对象注入半成品B中,可以先完成一个单例B,这时候A也能完成了

5.1二级缓存解决一般循环引用

 

5.2 三级缓存可以解决代理对象循环依赖

5.3构造函数循环引用

 5.4 缓存制造的通俗理解

就是通过注入一个没有初始化完全的对象的引用,来走完一个对象的创建流程。然后当另一个对象创建完成之后,之前赋值的引用指向的对象也就从没有初始化完全的对象变成初始化完全的对象了。

我认为构造完了之后,A和B之间的引用关系构成了一个环,单例A指向单例B,单例B指向单例A,而A和B只有一个;而不是和正常创建的一样一层套一层,创建多个A和B的嵌套,导致内存溢出。

5.5为什么三级缓存需要二级缓存

因为过程中A的工厂会去创建一个半成品代理A放在二级缓存里,包括后面B去拿代理A封装的时候会从这里拿以及把B注入给半成品A让A完整的时候,这能保证你永远都用的是一个对象(单例),如果你不用二级缓存,就需要多次调用A的工厂去创建对象,这样就是多例了。

5.6为什么代理对象二级制造不了------这篇文章让我茅塞顿开

 从反射到动态代理到aop到spring为什么需要三级缓存_aop 与三级缓存-CSDN博客

就是二级构造出来之后代理A里面是代理B,但是代理B里面是原始的A,而不是代理A,所以没有构成循环,就不能算完整的代理对象。 

6.SpringMVC重要组件(4个)

老式jsp

现在的开发

7.SpringBoot自动配置原理

8.Spring,mvc,boot的常见注解

9.MyBatis执行流程

xml配置文件-->构建唯一的sql会话工厂-->构造会话-->调用executor执行器去操作数据库接口-->执行器根据配置的mapper标签和dao接口的映射,根据需要把java对象和sql对象转换进行数据库操作,返回java对象结果

10.mybatis延迟加载(有点像懒汉式)

11.mybatis的一级二级缓存

12.德鲁伊连接池(自己项目的mybatis连接池)

数据库连接池(常用的德鲁伊)_连接池的流是不关闭的吗-CSDN博客

性能、拓展性好,还有日志功能。

  • 13
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值