2

我正在使用 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>

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

我正在这样使用

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

日志记录没有指定任何事务..事务在 spring aop 中运行良好,但在 spring 容器中未定义类时不能使用 aspectj

4

2 回答 2

0

请发布失败的实际代码。

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

于 2011-08-31T17:43:55.967 回答
0

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

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

我在 spring=bean 配置中缺少以下配置的第二件事。

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

于 2012-01-04T08:09:01.450 回答