我想用来spring-aspects
使我的方法具有事务性,但不使用 Spring AOP(Spring AOP 可以很好地使用:)<tx:annotation-driven/>
。我正在使用 Maven 来管理我的项目。
有没有办法在我的项目类上进行编译时编织,所以“它们是Transactional
”。我试图使用Mojo 的 AspectJ Maven 插件,但没有任何好的结果。
请帮忙。
我想用来spring-aspects
使我的方法具有事务性,但不使用 Spring AOP(Spring AOP 可以很好地使用:)<tx:annotation-driven/>
。我正在使用 Maven 来管理我的项目。
有没有办法在我的项目类上进行编译时编织,所以“它们是Transactional
”。我试图使用Mojo 的 AspectJ Maven 插件,但没有任何好的结果。
请帮忙。
我想到了。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>
希望这可以帮助某人。
也许你可以试试这个:
<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj"/>