Spring+Mybatis整合事务不起作用

时间:2021-05-20 05:11:41
配置文件如下
<!--  开启注解配置  -->
<context:annotation-config/>
<context:component-scan base-package="com.sky.blue.service"/>
<!--  jdbc.properties文件路径   -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:jdbc.properties"/>
</bean>
<!--  数据源的配置  -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
<property name="initialSize" value="30"/>
<property name="maxActive" value="50"/>
<property name="maxIdle" value="20"/>
<property name="removeAbandoned" value="true"/>
<property name="maxWait" value="30000"/>
<property name="poolPreparedStatements" value="true"/>
<property name="defaultAutoCommit" value="false"/>
</bean>
<!-- ====事务相关控制== -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:advice id="userTxAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" read-only="false" rollback-for="Exception,RuntimeException,SQLException"/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="true">
<aop:pointcut id="pc" expression="execution(public * com.sky.blue.service.*.*(..))"/>
<!--  把事务控制在service层  -->
<aop:advisor pointcut-ref="pc" advice-ref="userTxAdvice"/>
</aop:config>
<!--  MyBatis sqlSessionFactory 配置 mybatis -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:SqlMapConfig.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.sky.blue.dao"/>



日志打印如下:

[DEBUG] 2015-02-14 13:59:56 :Creating a new SqlSession
[DEBUG] 2015-02-14 13:59:56 :SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@f4df69e] was not registered for synchronization because synchronization is not active
[DEBUG] 2015-02-14 13:59:56 :Fetching JDBC Connection from DataSource
[DEBUG] 2015-02-14 13:59:56 :JDBC Connection [jdbc:mysql://127.0.0.1:3306/cpplatform?useUnicode=true&characterEncoding=UTF-8, UserName=root@localhost, MySQL-AB JDBC Driver] will not be managed by Spring
[DEBUG] 2015-02-14 13:59:56 :==>  Preparing: select user_id AS userId,user_name AS userName,user_type AS userType,password ,locked,last_ip AS lastIp,ref_roles,group_id,account, last_visit AS lastVisit ,create_time,parent_id from ums_user WHERE account = ? 
[DEBUG] 2015-02-14 13:59:56 :==> Parameters: admin(String)
[DEBUG] 2015-02-14 13:59:56 :<==      Total: 1
[DEBUG] 2015-02-14 13:59:56 :Committing JDBC Connection [jdbc:mysql://127.0.0.1:3306/cpplatform?useUnicode=true&characterEncoding=UTF-8, UserName=root@localhost, MySQL-AB JDBC Driver]
[DEBUG] 2015-02-14 13:59:56 :Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@f4df69e]
[DEBUG] 2015-02-14 13:59:56 :Returning JDBC Connection to DataSource

4 个解决方案

#1


自顶,顶上首页去 Spring+Mybatis整合事务不起作用

#2


可以把service的事物注解贴出来看下吗?类需要是public的,默认是捕获runtimeexception,仅当参考

#3


该回复于2015-02-28 13:47:09被管理员删除

#4


没有看到不起作用啊

#1


自顶,顶上首页去 Spring+Mybatis整合事务不起作用

#2


可以把service的事物注解贴出来看下吗?类需要是public的,默认是捕获runtimeexception,仅当参考

#3


该回复于2015-02-28 13:47:09被管理员删除

#4


没有看到不起作用啊