【问题标题】:Spring Annotation driver Transaction with AspectJ problemSpring Annotation driver Transaction with AspectJ 问题
【发布时间】:2011-08-31 05:57:43
【问题描述】:

我正在使用 AspectJ 编译时编织和 spring 3.O。和 Hibernate 3.0...AspectJ 编织对于简单的事情(例如日志记录)工作正常,但对于事务来说却不能正常工作

<tx:annotation-driven transaction-manager="transactionManager"
    mode="aspectj" order="1" />
<bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>

Sprong-aspects jar 也存在于 lib forlder 中,但事务支持仍然不起作用..

我就是这样用的

@Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void invokeService() throws Exception {
    insertUpdatePolicy();
}

日志没有指定任何事务..当类未在 spring 容器中定义时,事务在 spring aop 上运行良好,但在 aspectj 上运行良好

【问题讨论】:

  • 你能更明确地说明问题吗?如有例外请粘贴到此处。
  • @Adelave 我没有收到异常,但没有调用事务...ex 事务没有回滚异常

标签: hibernate jakarta-ee aspectj spring-transactions


【解决方案1】:

请发布失败的实际代码。

启用日志记录。检查日志以查看事务是否正在被管理。如果是,那么您配置事务的方式可能存在问题。

【讨论】:

  • 感谢您的兴趣,但我的日志没有显示任何交易......我是如何弄清楚的
  • 嘿。很抱歉在那里开枪。我已经相应地编辑了我的回复。
【解决方案2】:

我已经找到了这个问题的答案,

我们需要记住一件事,我们需要将 spring-aspects.jar 放置到我的 Aspect Path 而不是 java 类路径。否则编织没有完成并且事务不起作用。

在 spring=bean config 中配置之后我缺少的第二件事。

<bean class="org.springframework.transaction.aspectj.AnnotationTransactionAspect" factory-method="aspectOf">
<property name="transactionManager" ref="transactionManager"/>

【讨论】:

    猜你喜欢
    • 2015-12-17
    • 2014-08-05
    • 2021-11-29
    • 1970-01-01
    • 2015-11-11
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多