`
ywu
  • 浏览: 456517 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

spring mybatis整合事务不起作用

阅读更多

今天同事在测试spring事务回滚的时候,发现事务回滚不了,使用的spring+mybatis,配置如下:

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
	<!-- 基本的数据库连接配置 -->
	<property name="user" value="${jdbc.username}"></property>
	<property name="password" value="${jdbc.passwd}"></property>
	<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>
	<property name="driverClass" value="${jdbc.driverClass}"></property>
	<!-- 其他配置 -->
	<property name="maxPoolSize" value="30"></property>
	<property name="minPoolSize" value="10"></property>
	<!-- 关闭自动提交功能 -->
	<property name="autoCommitOnClose" value="false"></property>
	<!-- 连接超时时间 -->
	<property name="checkoutTimeout" value="1000"></property>
	<!-- 重试次数 -->
	<property name="acquireRetryDelay" value="2"></property>
</bean>

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	<!-- 装配c3p0数据源 -->
	<property name="dataSource" ref="dataSource"></property>
	<!-- 导入mybatis全局配置文件 -->
	<property name="configLocation" value="classpath:mybatis-config.xml"></property>
	<!-- 扫描entity包,使用别名 -->
	<property name="typeAliasesPackage" value="com.hs.ssi.entity"></property>
	<!-- 扫描sql映射文件 -->
	<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	<!-- 配置sqlSessionFactory -->
	<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
	<!-- 扫描dao接口包 -->
	<property name="basePackage" value="com.hs.ssi.dao"></property>
</bean>
	
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<property name="dataSource" ref="dataSource"></property>
</bean>

<tx:annotation-driven transaction-manager="transactionManager"/>

 配置文件中也添加了注解扫描,使用aspectj实现动态代理,classpath中也添加了asm、aspectj相关的jar包,但还是不起作用,该配置的都配置了。

启动日志中发现有以下输出:

10:49:45.243 [Thread-10] DEBUG o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
10:49:45.246 [Thread-11] DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
10:49:45.246 [Thread-11] DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4933e6d6] was not registered for synchronization because synchronization is not active
10:49:45.246 [Thread-10] DEBUG o.m.s.t.SpringManagedTransaction - JDBC Connection [com.mchange.v2.c3p0.impl.NewProxyConnection@6a437f45] will not be managed by Spring

 应该是连接没有被spring管理到。找了很长时间,没找到原因。

后来重新整了个环境,相似的配置,新环境却可以。把两个环境对比了下,一点点对比,同事的环境是javaFX,用来做桌面开发的,交给spring管理的业务类实现了java8中的函数式接口,后来在新环境中测试了一下,定义了一个函数式接口,将新环境的业务类实现这个函数式接口,发现启动的时候报错了,spring没扫描到业务类,不知道为嘛扫描不到。问题找到了,也解决了,但是不知道为嘛实现函数式接口的业务类无法被扫描,正常情况下函数式接口也不是用来被实现的,而是方便使用lambda表达式操作的,以后得注意。

0
0
分享到:
评论

相关推荐

    spring_mybatis 整合jar包

    描述中提到"基本常用jar包的整合",意味着这个压缩包包含了一些基础且常用的库,这些库是进行Spring和MyBatis整合所必需的。例如,Spring的`spring-context`、`spring-beans`、`spring-jdbc`和`spring-tx`,以及...

    spring与mybatis整合实现事务配置

    **Spring与MyBatis整合的核心步骤:** 1. **引入依赖**:在项目中添加Spring、MyBatis以及数据库驱动的相关jar包,如果使用的是Maven或Gradle,则需在pom.xml或build.gradle中配置相应的依赖。 2. **配置MyBatis**...

    Spring-SpringMVC-Mybatis整合所有jar包

    这个压缩包“Spring-SpringMVC-Mybatis整合所有jar包”包含了这三个框架整合所需的全部依赖,使得开发者能够快速搭建起一个功能完备的后端服务。 1. **Spring框架**:Spring是一个全面的开源应用框架,它提供了对...

    SpringMybatisSpringMvc整合包

    这个整合包中的jar包包括了Spring框架的core、context、aop、beans、web等模块,Mybatis的核心库和Spring Mybatis的整合模块,以及Spring MVC的相关组件。这些jar包涵盖了运行Spring、Mybatis和Spring MVC应用所需的...

    Spring+Mybatis整合事务回滚

    花了一晚上时间终于搞出来了Spring整合Mybatis事务回滚(Mysql数据库),控制Service层中的多次插入操作,多次操作整体是一个事务。 里面有缘嘛和jar包,资源为war包,导入即可。运行Test类中的测试代码即可。 建表...

    mybatis与spring整合的全部jar包

    在SSM整合中,Spring负责管理各个组件,包括数据库连接、事务管理、MyBatis的SqlSession等。主要涉及的jar包可能包括:`spring-core`, `spring-context`, `spring-beans`, `spring-aop`, `spring-tx`等。 2. **...

    spring整合Mybatis

    最后,`springMybatis`可能是指项目的根目录或者模块名称,通常包含`src/main/resources`下的Mybatis配置文件、Mapper接口和XML文件,以及`src/main/java`下的业务逻辑和服务层代码。 综上所述,"Spring整合Mybatis...

    Spring与MyBatis整合源码

    3. **Spring与MyBatis整合**:整合Spring和MyBatis主要涉及以下几个步骤: - **配置数据源**:在Spring的配置文件中,我们需要定义数据源(DataSource),这是连接数据库的关键。 - **配置SqlSessionFactory**:...

    spring和mybatis整合配置

    总的来说,Spring和MyBatis的整合是Java Web开发中常见且实用的技术栈,它结合了Spring的强大管理和事务控制能力,以及MyBatis的简单易用和灵活的SQL操作,为开发者提供了高效且可维护的解决方案。

    spring mybatis整合所有架包

    标题"spring mybatis整合所有架包"指的是将Spring 3.2、MyBatis 3.2和mybatis-spring 1.2.1这三者进行集成,以便在同一个项目中使用。mybatis-spring是一个桥梁库,它使得Spring和MyBatis能够无缝协作,提供更好的...

    Spring,Mybatis整合

    Spring 和 Mybatis 是两个在 Java 开发中广泛使用的框架,Spring 作为一个全面的后端开发框架,提供了依赖注入、AOP(面向切面编程)、事务管理等功能,而 Mybatis 则是一个轻量级的持久层框架,专注于 SQL 的执行和...

    SpringMVC+Spring+Mybatis整合DEMO

    **SpringMVC、Spring和Mybatis是Java Web开发中的三大核心框架,它们的整合使用能够构建出高效、灵活的企业级应用程序。本DEMO将详细展示如何将这三个框架整合在一起,以便于开发者理解并掌握其集成过程。** 首先,...

    Spring-Mybatis整合

    Spring 和 Mybatis 是两个在...通过上述内容,我们可以看到Spring-Mybatis整合涉及到的核心知识点,包括框架的引入、配置、接口设计、事务管理和测试等多个方面。理解并掌握这些知识点,对于进行Java Web开发至关重要。

    spring和mybatis整合小案例

    这个"spring和mybatis整合小案例"项目,展示了如何将两者结合,构建一个可运行的Java Web应用。通过这个案例,开发者可以更好地理解和掌握Spring与MyBatis的整合技巧,提高开发效率,减少出错的可能性。

    spring+mybatis整合包

    "spring+mybatis整合包"是指将这两个框架进行集成,以实现更加高效和灵活的Java开发。下面将详细阐述Spring与MyBatis的整合过程、各自的核心功能以及它们在实际项目中的应用。 1. Spring框架:Spring是Java领域最...

    Spring-Mybatis整合小例子

    这个"Spring-Mybatis整合小例子"旨在展示如何构建一个简单的应用,该应用能够查找数据库表中的所有记录。 首先,Spring是一个全面的Java企业级应用开发框架,它提供了依赖注入(DI)、面向切面编程(AOP)以及众多...

    spring-mybatis整合jar包,spring-mybatis整合jar包

    Spring Mybatis是一个流行的...通过以上库文件的整合,Spring Mybatis能提供一套完整的解决方案,帮助开发者快速、高效地构建数据访问层,同时利用Spring的其他功能如事务管理、AOP等,提高代码的可维护性和灵活性。

    spring与Mybatis整合所有jar包

    以上就是Spring与MyBatis整合所需的关键知识点。在实际项目中,还需要根据具体需求进行适当的配置调整和优化,确保框架的高效协同工作。正确配置和理解这些概念对于Java开发者来说至关重要,因为它们构成了许多企业...

    Spring整合Mybatis与SpringBoot整合Mybatis原理分析

    将Spring与Mybatis整合,可以充分利用两者的优点,构建出高效、灵活的Web应用。 1. **Spring整合Mybatis的基本步骤** - **引入依赖**: 在项目的pom.xml中添加Spring和Mybatis的相关依赖。 - **配置数据源**: ...

Global site tag (gtag.js) - Google Analytics