<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"/>
时间: 2024-02-13 09:50:51 浏览: 144
This bean defines a transaction manager for managing transactions in Spring applications using JDBC. It is used to manage transactions on JDBC connections obtained from a DataSource. The name of the bean is "transactionManager" and the class used is "org.springframework.jdbc.datasource.DataSourceTransactionManager". This bean must be defined in the Spring configuration file for JDBC-based transactions.
相关问题
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager"/> </bean> <bean id="jbpmOAProcessServiceTransaction" parent="baseTransactionProxy" lazy-init="true"> <property name="target" ref="jbpmOAProcessService" /> <property name="transactionAttributes"> <props> <prop key="*"> PROPAGATION_REQUIRED,-BusinessServiceException </prop> </props> </property> </bean> 这个是部分xml配置
看起来你的配置是正确的。将目标对象jbpmOAProcessService设置为baseTransactionProxy的目标,并将事务属性设置为PROPAGATION_REQUIRED,表示如果当前没有事务,就创建一个新事务;如果已经有事务了,就加入到当前事务中。并且设置了回滚的异常类型BusinessServiceException。
但是,你提到JbpmTemplate的execute方法内部出现异常,事务没有回滚。这个问题可能是由于你的异常类型不是BusinessServiceException或其子类,或者异常被捕获并处理了,没有抛出RuntimeException或其子类。建议你在execute方法中添加日志或调试代码,确保异常被抛出并且类型正确。如果异常类型正确,可以尝试使用@Transactional注解替代TransactionProxyFactoryBean进行事务管理,看看是否可以解决问题。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:Context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/cache" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd"> <Context:component-scan base-package="com.gcx.service"/> <bean id="BookServiceImpl" class="com.gcx.service.BookServiceImpl"> <property name="bookMapper" ref="bookMapper"/> </bean> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> </beans>
这是一个 Spring 配置文件,用于配置 Spring 容器中的 bean 以及其他相关的配置。其中,`Context:component-scan` 标签用于自动扫描指定包下的类,将其注入到 Spring 容器中;`bean` 标签用于手动配置 bean,并且可以指定依赖注入的属性;`transactionManager` 标签用于配置事务管理器。此外,`xmlns` 命名空间用于指定 XML 文件中使用的标签,`xsi:schemaLocation` 属性用于指定 XML 文件中使用的各个标签的 xsd 文件路径。
阅读全文