Spring注释驱动程序事务与AspectJ问题



我使用的是AspectJ编译时编织和spring 3.0。和Hibernate 3.0…AspectJ编织在简单的事情上工作得很好,比如日志记录,但在Transaction

中工作得不正确。
<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文件夹中也有spring -aspects jar,但是仍然不支持事务处理。

我像这样使用

@Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void invokeService() throws Exception {
    insertUpdatePolicy();
}
当类没有在spring容器中定义时,事务在spring aop中可以正常工作,但在aspectj中不能正常工作

请张贴失败的实际代码。

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

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

我们需要记住的一件事是,我们需要将spring-aspects.jar放在我的Aspect Path中,而不是java类路径中。否则织造不完成,事务也不工作。

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

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

最新更新