我想使用spring-aspects
來使我的方法成爲事務性的,但是沒有使用Spring AOP(Spring AOP可以很好地處理:<tx:annotation-driven/>
)。 我正在使用Maven來管理我的項目。如何使用AspectJ設置springframework @Transactional
有沒有辦法做編譯時間編織我的項目類,所以「他們是Transactional
」。 我試圖使用Mojo's AspectJ Maven Plugin,但沒有任何好的結果。
請幫忙。
我想使用spring-aspects
來使我的方法成爲事務性的,但是沒有使用Spring AOP(Spring AOP可以很好地處理:<tx:annotation-driven/>
)。 我正在使用Maven來管理我的項目。如何使用AspectJ設置springframework @Transactional
有沒有辦法做編譯時間編織我的項目類,所以「他們是Transactional
」。 我試圖使用Mojo's AspectJ Maven Plugin,但沒有任何好的結果。
請幫忙。
我想通了。 Maven插件工作正常,但問題是我的Spring配置: 我:
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"/>
我需要的是:
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean class="org.springframework.transaction.aspectj.AnnotationTransactionAspect" factory-method="aspectOf">
<property name="transactionManager" ref="transactionManager"/>
</bean>
現在它工作正常。我的@Transactional方法的性能得到了改善,並且我正在爲之奮鬥。
這裏是我的Maven插件AspectJ的配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.3</version>
<configuration>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
<source>1.5</source>
<showWeaveInfo>true</showWeaveInfo>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
希望這可以幫助別人。
我有一個問題給你:在這篇文章中,你已經將'transactionManager' bean的類型從'JpaTransactionManager'替換爲'HibernateTransactionManager'。所以你說'org.springframework.transaction.aspectj.AnnotationTransactionAspect'與JPA不兼容? – STaefi 2015-10-21 11:29:29
我不這麼認爲。很可能我搞砸了一些東西/沒有正確設置它爲JPA工作,但不知何故它爲Hibernate工作。很久以前,我甚至都不記得它是什麼項目。 – Monku 2015-10-22 14:00:01
也許你可以試試這個:
<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj"/>
下面是我對如何做同樣在Java配置答案的鏈接:
Spring @Transactional is applied both as a dynamic Jdk proxy and an aspectj aspect
希望它可以幫助
aspectj插件有什麼問題?你可以應該你的POM嗎? – 2010-02-03 17:55:49
插件沒有問題彈簧配置有問題。 – Monku 2010-02-06 21:05:44