26Java细节知识点总结

事物

    1. a方法调用b方法,a方法上面有@transition注解,b方法没有注解,b方法报错,抛出异常,a方法吃掉了异常,a方法不会回滚;a方法没有吃掉,a方法回滚。
    1. a方法里面调用b方法,两个方法上面有@transaction注解,调用方式用this.b()进行调用,那么b方法代理不会被触发,b方法走的还是原来的方法,这个时候a和b共用一个事物,逻辑和1一样
    1. a方法里面调用b方法,两个方法上面有@transaction注解,传播级别是默认的required,b方法抛出异常,a方法就算吃掉了,最后也会回滚,因为a和b公用一个事物,b方法抛出异常的时候给公共事务打上了rollback标记,a事物最后提交的时候会报错
    1. a方法@transaction注解隔离级别是required,b事物的@transaction注解隔离级别是requires_new,b方法抛出异常,a吃掉异常,a可以正常提交,因为a和b事物独立,b只会标记自己的异常,不会污染到a。

代理模式

  • jdk动态代理

    A 是接口,B 实现 A,JDK 动态代理中,B是目标对象,JDK 动态代理生成全新的代理类 ,这个代理类实现接口 A不继承 B ,代理对象实现了 A 接口,内部持有 B 对象的引用。

    JDK 动态代理:实现接口,不会重写目标类方法 ,是在InvocationHandler#invoke里面拦截调用

  • cglib

    例如E类没有接口,代理会创建一个子类继承 E 类,目标类 E 没有接口时,CGLIB 会动态生成一个 E 的子类,子类继承 E,并重写 E 里面的非 final 方法,在重写的方法里嵌入增强逻辑。

相关推荐
钱栈up2 小时前
qoder CLI 1.0.45 本地小说生成工作流搭建:Feature Gate 配置与长文本断连排查从死锁到全流程跑通:Python德州扑克项目的优化
java·前端·数据库
代码调试师2 小时前
【毕设分享】springboot攀枝花生鲜电商平台58990
java·vue.js·spring boot·后端·架构·eclipse·课程设计
xcl09252 小时前
全民健身解决方案小程序系统开发实战:从架构设计到上线指南
java·spring boot
洛阳泰山2 小时前
别卷 Python 了:我用 Java 21 + Spring Boot 3 打造了一个企业级 RAG + 智能体工作流引擎(附架构与源码解析)
java·spring boot·后端
MetaLite2 小时前
Spring Cache只留注解-MetaLite如何二开缓存运行时
java·spring·缓存
Wang's Blog2 小时前
Java框架快速入门: Spring Security+OAuth2之自定义数据库表结构实现认证
java·数据库·spring
白远山2 小时前
家政服务派单平台搭建实战指南:从需求分析到系统设计全流程解析
java·开发语言·架构·uni-app·需求分析
树若逝花若殇2 小时前
基于Spring AOP优雅记录请求响应日志
java·spring boot
Yyyyyy~3 小时前
【java】数组的定义和使用
java