首页 > 其他分享 >记录关于spring事务的两个坑

记录关于spring事务的两个坑

时间:2022-11-15 01:22:05浏览次数:29  
标签:事务 加锁 添加 记录 spring 调用 方法

一,调用本地方法时,事务不起作用。

 

 

 

原因:事务能生效的原因是spring对事务的对象做了动态代理,这里默认的是用this(目标对象)调用方法,所以没有事务功能。

需要拿到事务的代理对象,可以使用AopContext.currentProxy()方法,同时引入aspectj依赖,并在启动项上添加注解@EnableAspectJAutoProxy( exposeProxy = true)

 

 

 

二、 在事务中加锁,锁失效

 

 原因: 此种情况下,当方法执行完时,锁被释放,但是事务还没有提交,此时如果第二个线程进来,也是可以拿到锁的,所以在事务中添加锁无效。

应该在调用事务方法之前就加锁。

此处只是针对数据库查询,不需要添加事务,所以删掉@transaction注解即可

 

标签:事务,加锁,添加,记录,spring,调用,方法
From: https://www.cnblogs.com/tyleaf/p/16891120.html

相关文章

  • 【Java】Springboot + Redis + AOP切面实现字典翻译
     使用案例演示:先开发了一个简单的Demo:普通DTO类注解翻译的字段和翻译来源  在需要翻译的方法上注解@Translate  接口返回结果:  框架思路:1、标记的......
  • LeetCode刷题记录.Day15
    反转字符串中的单词151.反转字符串中的单词-力扣(LeetCode)classSolution{public:voidreverse(string&s,intstart,intend){//反转单词字符串,写法为左闭......
  • 重新认识Spring Boot
    SpringBoot的特性方便的创建可独立运行的Spring应用程序直接内嵌Tomcat、Jetty或Undertow简化了项目的构建配置为Spring及第三方库提供自动配置提供生产级特性无需生成代......
  • Spring--依赖注入:setter注入和构造器注入
    依赖注入:描述了在容器中建立Bean于Bean之间依赖关系的过程setter注入在本来已经在service里面引用了bean的相关方法的基础上,再引用之前已经写过的userDao的对象,即在servi......
  • DOC,PDF,PPT文件转换为HTML代码记录
    pom文件引入<repositories> <repository> <id>com.e-iceblue</id> <url>http://repo.e-iceblue.cn/repository/maven-public/</url> </repository></repositories>......
  • springAop的实现方式
    AOP的三种实现方式AOP是Spring中继IOC(面向切面编程)后又一十分重要的概念。AOP,即面向切面编程。使用AOP可以实现在不改变原有的业务逻辑的代码的情况下,在系统上增加一些特殊......
  • Spring--Bean的生命周期
    Bean的生命周期对于生命周期来说,每个对象都会有起初的初始化和最后的销毁,Bean也不例外;Bean的生命周期可以简述为:Bean的定义--Bean的初始化--Bean的使用--Bean的销毁所以......
  • Spring学习笔记(2)实现 Bean 的定义、注册、获取
    代码目录结构small-spring-step-02└──src├──main│└──java│└──cn.bugstack.springframework.beans│├─......
  • SpringMVC 项目中 创建SpringBoot后,引起的No bean named 'xxx' available
    ​参考:https://blog.csdn.net/weixin_44341110/article/details/115208375https://blog.csdn.net/qq_40929531/article/details/103956332 我是sessionFactory报错......
  • springboot框架中service层抽取增删改查并封装
    1、BaseService.javaimportcatl.mapper.BaseMapper;importtk.mybatis.mapper.entity.Example;importjavax.annotation.Resource;importjava.util.Collections;import......