`

spring+mybatis 注解事务失效

阅读更多
@Transactional可用要保证:
1必须是父容器加载的
2标注的方法是public
3默认回滚是runtimeException。可通过   @Transactional(rollbackFor={ArithmeticException.class})    修改

对于第一点说明:
web.xml加载顺序是context-param -> listener-> filter -> servlet
listener加载config是父容器,有@Transactional方法的类必须是在父容器加载,
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-config.xml</param-value>
</context-param>
=============
而如何放在
<servlet>
<servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
  放在spring mvc config里加载的确不可以。
==============
另外<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> 
中自动提交可以不配置也可以回滚  

         <property name="autoCommitOnClose" >
         <value>false</value>
         </property>
分享到:
评论

相关推荐

    Spring Boot + Druid + Mybatis + Atomikos 配置多数据源 并支持分布式事务

    本教程将探讨如何利用Spring Boot、Druid、Mybatis以及Atomikos来配置多数据源并实现分布式事务。 首先,Spring Boot是Java生态系统中的一个流行框架,它简化了设置和配置过程,使得开发人员可以快速启动新项目。在...

    springcloud+eureka+mybatis+seata

    SpringCloud、Eureka、MyBatis以及Seata这四个技术组件的结合,旨在提供一个高效、可靠的分布式事务解决方案。本文将详细解析这些技术如何协同工作,以及如何在实际项目中应用。 首先,SpringCloud作为一个微服务...

    SpringBoot+Mybatis实现数据源动态切换

    springboot实现数据源动态切换 注意事项: 1. 该demo采用yml配置数据库信息,注意url标签为jdbc-url 2.项目中加了日志输出...3.在Service中应用事务时,自定义的注解将失效,解决办法:可将注解配置到Controller方法中

    spring mybatis整合入门

    在学习过程中,可以参考给定的博文链接(已失效,无法提供具体内容),以及官方文档和相关教程,深入理解并实践每一个步骤,以达到熟练掌握Spring MyBatis整合的目的。同时,了解源码有助于更深层次的理解框架的工作...

    Spring框架是在2003年兴起的一门轻量级的JAVAEE框架技术 Spring框架学习资料第五天

    本篇将主要探讨Spring框架的几个核心知识点,包括事务传播属性、注解式事务管理、注解式开发、SSM(Spring+SpringMVC+MyBatis)集成开发流程以及Spring与JUnit测试的整合。 **一、事务传播属性失效问题及解决** ...

    springboot实现多数据源而且加上事务不会使aop切换数据源失效

    本示例主要讲解如何使用Spring Boot结合MyBatis实现多数据源切换,并确保AOP事务管理仍然有效。 首先,我们需要配置多数据源。在Spring Boot中,可以使用`DataSource`接口的实现类,如`HikariCP`或`Druid`,创建两...

    mybatis中文文档

    - Spring中使用MyBatis的配置,如SqlSessionFactoryBean的配置,以及事务管理的整合。 12. **MyBatis的最佳实践**: - 如何设计Mapper接口和实体类,以保持代码的整洁和高效。 - 何时使用Mapper XML文件,何时...

    mybatis相关jar

    MyBatis-Spring是MyBatis与Spring框架的整合库,它使得MyBatis可以无缝集成到Spring应用中,利用Spring的依赖注入和事务管理功能。mybatis-spring 1.1.1版本提供了SqlSessionFactoryBean、SqlSessionTemplate等工具...

    解决osgi spring 事务配置问题

    首先,Spring的事务管理主要依赖于AOP(面向切面编程)来实现,通过定义事务边界,如`@Transactional`注解,来控制事务的开始、提交、回滚等行为。但在OSGi中,由于类加载器的隔离,Spring的代理机制可能会失效,...

    mybatis 中文文档

    10. **Spring 整合**:MyBatis 可以无缝地与 Spring 框架整合,利用 Spring 的依赖注入和事务管理功能,简化开发流程。 通过对 MyBatis 中文文档的深入学习,你可以掌握如何高效地操作数据库,编写灵活的 SQL,以及...

    MyBatis.md

    根据提供的文件信息,“MyBatis.md”文档主要探讨了MyBatis框架的源码实现及其与Spring框架集成时出现的一级缓存失效问题。本文将深入解析MyBatis的核心组件如Configuration、SqlSession等,并针对MyBatis与Spring...

    spring_mvc企业级框架精简版本,纯注解,绝对原创(最新版本,之前连接失效了)

    11. **AOP(面向切面编程)**:Spring MVC可以利用Spring的AOP支持实现日志记录、事务管理等跨切面的关注点。 12. **验证(Validation)**:Spring MVC可以配合JSR 303/349的Bean Validation进行数据校验,使用`@...

    SSM框架整合演示代码

    在SSM整合中,避免了SpringMVC与Spring注解重复扫描导致的事务失效问题,这可能涉及到Spring的扫描范围设置。当两个不同组件扫描相同范围的类时,可能会出现事务管理器无法正确识别事务边界的问题。通过合理配置扫描...

    ssm企业级框架精简版本,纯注解,绝对原创(最新版本,之前连接失效了)

    SSM框架,全称为Spring、SpringMVC和MyBatis的集成框架,是Java开发中常用的企业级应用框架。这个框架组合提供了模型-视图-控制器(MVC)的设计模式,以及数据库操作的能力,大大简化了Java Web应用的开发流程。在本...

    Spring之Spring2.5集成Hibernate3.6

    3. **数据访问抽象**:Spring的Data Access/Integration模块提供了一种抽象层,可以透明地切换不同的ORM框架,如Hibernate、MyBatis等,增强了系统的可扩展性。 4. **懒加载和缓存**:Spring结合Hibernate的二级...

    Spring In Action 随书源码

    3. **AOP**:Spring的AOP模块支持声明式事务管理、日志记录、性能监控等跨切面关注点,使得这些功能可以独立于业务逻辑进行实现和管理。 4. **数据访问**:Spring提供了JDBC抽象层,简化了数据库操作;还支持ORM...

    MyBatis:MyBatis演示

    10. **MyBatis与Spring整合**:在实际开发中,MyBatis通常与Spring框架结合使用,通过Spring的DataSourceTransactionManager管理事务,使用Spring的@Autowired自动注入Mapper接口,简化了事务管理和对象装配。...

    SSM框架所需jar包_完整jar包

    Spring 5.1.9是该框架的一个稳定版本,其主要特性包括依赖注入(DI)、面向切面编程(AOP)、事务管理、数据访问/集成以及Web MVC。Spring MVC是Spring框架的一部分,负责处理HTTP请求和响应,提供模型-视图-控制器...

    SSM中事务管理所需的jar包-aspectjweaver

    在Java Web开发中,SSM(Spring、SpringMVC、MyBatis)是一个常见的框架组合,用于构建高效、灵活的企业级应用。其中,事务管理是确保数据一致性与完整性的关键部分。`aspectjweaver.jar`是AspectJ库的一个组成部分...

    SSM的整合+OScache页面缓存+freemark模板

    2. 配置Spring的ApplicationContext,定义Bean、AOP、事务管理等。 3. 配置SpringMVC的DispatcherServlet,包括视图解析器、拦截器等。 4. 配置Mybatis的SqlSessionFactory,结合Mybatis-Spring的...

Global site tag (gtag.js) - Google Analytics