gpt4 book ai didi

java - Spring XML 发送 :advice equivalent of @TransactionConfiguration?

转载 作者:搜寻专家 更新时间:2023-11-01 03:43:19 26 4
gpt4 key购买 nike

我在 Spring 3.0.5 中使用基于 XML 的事务配置。转向基于注释不是一种选择。在基于 XML 的配置中,@TransactionConfiguration( rollback=true) 的等价物是什么?

目前,我没有在我的 JUnit 中强制回滚,所以我的数据库一直充满随机测试数据,必须删除/清理这些数据。此外,我最终在不同的测试运行之间遇到了 PK 冲突。

我的 applicatonContext 内容如下:

...
<!-- Wrap all DAO Implementations in a transaction -->
<aop:config proxy-target-class="false">
<aop:pointcut id="daoOperation" expression="execution(* com.calculator.dao.impl.*Impl.* (..))" />
<aop:advisor pointcut-ref="daoOperation" advice-ref="txAdvice" />
</aop:config>

<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="*" read-only="true" propagation="REQUIRED"/>
<tx:method name="execute*" propagation="REQUIRED"/>
<tx:method name="query*" propagation="REQUIRED"/>
<tx:method name="insert" propagation="REQUIRED"/>
<tx:method name="delete" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>

<bean class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="${datasource.url}" />
<property name="username" value="${datasource.user}" />
<property name="password" value="${datasource.password}" />
<property name="defaultAutoCommit" value="false" />
</bean>

...

如何指定我希望所有 JUnit 默认回滚?

谢谢,

埃里克

最佳答案

把这个配置放在你的 JUnit 测试类上。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "/pathTo/spring/context/applicationContext.xml")
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)
@Transactional
public class LocationDaoTest extends AbstractTransactionalJUnit4SpringContextTests{

@Test
public void testDAOsCRUD(){}
}

我希望我已经给了你关于你问题的所有答案。

关于java - Spring XML 发送 :advice equivalent of @TransactionConfiguration?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9135519/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com