`

spring声明式事物不起作用的原因

阅读更多
09:41:37,848 [main] INFO  jdbc.connection  - 3. Connection opened  org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
09:41:37,849 [main] DEBUG jdbc.connection  - open connections:  3 (1)
09:41:37,849 [main] DEBUG jdbc.audit  - 3. Connection.new Connection returned   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
09:41:37,849 [main] DEBUG jdbc.audit  - 3. Connection.getAutoCommit() returned true  org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:85)
09:41:37,849 [main] DEBUG org.mybatis.spring.transaction.SpringManagedTransaction  - JDBC Connection [net.sf.log4jdbc.ConnectionSpy@20576557] will not be managed by Spring
切入点配置不正确时:

当你的切入点路径配置不正确时(或者你配置的路径与你调用的点不匹配时候)!那么这个切面(spring事物管理器)就不被执行,相应的就不会开启事物等等操作了。而数据源的连接默认是开启自动提交的,就达不到事物了。

当你配置正确后,信息是这样的:
09:53:54,254 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory  - Returning cached instance of singleton bean 'empServiceImpl'
09:53:54,257 [main] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager  - Creating new transaction with name [com.boat.service.impl.EmpServiceImpl.updateEmpBaseInfo]: PROPAGATION_REQUIRED,ISOLATION_DEFAULT
09:53:54,257 [main] INFO  jdbc.connection  - 3. Connection opened  org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
09:53:54,257 [main] DEBUG jdbc.connection  - open connections:  3 (1)
09:53:54,257 [main] DEBUG jdbc.audit  - 3. Connection.new Connection returned   org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
09:53:54,258 [main] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager  - Acquired Connection [net.sf.log4jdbc.ConnectionSpy@360bc645] for JDBC transaction
09:53:54,258 [main] DEBUG jdbc.audit  - 3. Connection.getAutoCommit() returned true  org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:220)
09:53:54,258 [main] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager  - Switching JDBC Connection [net.sf.log4jdbc.ConnectionSpy@360bc645] to manual commit
09:53:54,259 [main] DEBUG jdbc.audit  - 3. Connection.setAutoCommit(false) returned   org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:225)
09:53:54,260 [main] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager  - Participating in existing transaction
09:53:54,277 [main] DEBUG org.mybatis.spring.SqlSessionUtils  - Creating a new SqlSession
09:53:54,287 [main] DEBUG org.mybatis.spring.SqlSessionUtils  - Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1c7f96b1]
09:53:54,379 [main] DEBUG jdbc.audit  - 3. Connection.getAutoCommit() returned false  org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:85)
09:53:54,379 [main] DEBUG org.mybatis.spring.transaction.SpringManagedTransaction  - JDBC Connection [net.sf.log4jdbc.ConnectionSpy@360bc645] will be managed by Spring

事物管理器在判断连接是否自动提交后,会将自动提交改为收到提交。并设置事物传播属性及隔离级别等等操作。这在事物管理这个切面处所在的事情。

分享到:
评论

相关推荐

    spring.net 声明式事物管理小示例

    spring.net 声明式事物管理小示例,有完整的配置,以及测试

    Spring(IOC,APD,声明式事物的例子)

    Spring(IOC,APD,声明式事物的例子)

    Spring声明式事务配置模板2.x

    Spring声明式事务配置模板2.x;提供通用的配置,系统对一些朋友有用。

    Spring+Hibernate 声明式事务

    本资源主要是结合博文 Spring+Hibernate: 声明式事务 http://blog.csdn.net/ManagementAndJava/article/details/78050519 的源代码,主要是讲解了spring4.3和hibernate5.2.11集成实现原理;

    spring中事物配置

    利用AOP定义声明式事物,配置事务管理器 , 配置事务的通知,配置事物代理,被注入的目标对象假如向拥有事务,必须有接口(AOP事务必须面向接口)

    Spring中的声明式事物

    NULL 博文链接:https://762626559-qq-com.iteye.com/blog/399127

    Spring声明式事务@Transactional知识点分享

    在本篇文章里小编给大家整理了关于Spring声明式事务@Transactional详解内容,需要的朋友们可以参考下。

    Spring2.5+Struts1.3的整合 项目完整小demo

    经过测试 实现Strut1和Spring2.5的集成 实现了Spring声明式事物管理 我的博客园地址 http://www.cnblogs.com/qylbg/ 邮箱1055592535@qq.com

    spring jar包

    声明式事物也用到此包。 2.spring-aspects:提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。 3.spring-beans:基础jar包,它包含访问配置文件、创建和管理bean 以及进行...

    Spring JDBC与事务管理源代码

    1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式;...5、掌握基于XML和Annotation的声明式事务管理的使用。

    spring-framework-4.3.0.RELEASE

    Spring 是开源轻量级框架 Spring IOC 方便解耦,简化开发维护 Spring AOP 支持面向切面编程 声明式事物管理 方便集成各种优秀框架 Spring 是一站式框架

    spring框架搭建

    本资源是spring,mybatis,maven,mysql的一个基础搭建,下载可以直接用 datasource.xml给出了声明式事物的两种配置方式

    spring boot注解事务+多线程

    spring boot 纯注解方法事务控制回滚,注解+简单配置文件使用多线程demo

    spring源代码解析

    对于一个Spring激活的web应用程序,可以通过使用Spring代码声明式的指定在web应用程序启动时载入应用程序上下文(WebApplicationContext),Spring的ContextLoader是提供这样性能的类,我们可以使用 ...

    Spring面试题

    1.面向切面编程提供声明式事务管理 2.spring支持用户自定义的切面 面向切面编程(aop)是对面向对象编程(oop)的补充, 面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。 ...

    09-5基于注解方式的声明式事务.rar

    09_5基于注解方式的声明式事务.rar

    seckill-ssm:使用spring+springMVC+MyBatis创建秒杀系统

    2、spring声明式事物只回滚运行期异常 3、使用注解控制事物方法的优点: (1) 开发团队达成一致约定,明确标注事务方法的编程风格 (2) 保证事务方法的执行时间尽可能短,不要穿插其他网络操作,如RPC/HTTP请求 或者...

    使用Spring框架实现AOP切面编程.zip

    本资源通过一个Category和Publisher表的实例,使用Spring框架实现AOP切面编程,其中实现了增删改查的功能,通过事物(tx)管理器、扫描业务逻辑、声明式事务达到切面编程效果。代码中有很详细的备注,适合新手入门

    spring相关详解

    适合初学者,事物的处理的机制--声明式和编程式!理解透彻后很有帮助的

    J2EE实验6.docx

    1.实现超市订单系统中供应商表的添加操作 2.配置事务管理器组件 3.在Spring配置文件中使用tx和aop命名空间下的标签配置声明式事务 4.修改上例,使用注解的方式配置声明式事务

Global site tag (gtag.js) - Google Analytics