【问题标题】:JTA Callbacks in Spring春季 JTA 回调
【发布时间】:2011-11-29 16:33:29
【问题描述】:

是否可以在 Spring 应用程序中使用 JTA 事务注册某种回调?

我有一些模拟服务代表属于另一个应用程序的远程服务,这些应用程序通常使用 Spring 的HttpInvoker 访问。这些模拟服务使用Maps 等以简单的方式对内存中的数据进行建模。

单元测试不一定知道哪些服务可能会被使用;测试用例所针对的服务可能会在幕后使用它们。

单元测试是事务性的,Spring 的SpringJUnit4ClassRunner 将在每次测试后回滚事务,这意味着我们的单元测试数据库的状态在测试之间保留。

如何回滚此自定义内存服务实现的状态?如果有办法找出当前是否有交易正在进行,那么我希望有一种方法可以在交易完成之前使用TransactionManager 注册回调。

【问题讨论】:

    标签: spring unit-testing transactions junit jta


    【解决方案1】:

    我认为以这种隐式方式清理测试模拟不是一个好主意 - 测试通常会显式执行清理。

    不过,如果你真的想要,看看TransactionSynchronizationManager.registerSynchronization()

    【讨论】:

    猜你喜欢
    • 2014-10-13
    • 1970-01-01
    • 2017-10-22
    • 2012-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多