1
我試圖使用Spring的事務管理器加載時間編織,但沒有太多運氣。目前,我只是想運行一個簡單的em.persist()在@Transactional方法,但通過它看到的不會出現下運行的事務:TransactionSynchronizationManager.isActualTransactionActive()
AspectJ加載時間使用Spring事務管理器和Maven編織
我的應用程序上下文文件包含:
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="TEST-pu"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="transactionManager" mode="aspectj" proxy-target-class="true"/>
而且我的pom.xml包含:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-agent</artifactId>
<version>2.5.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.10</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4</version>
<configuration>
<forkMode>once</forkMode>
<argLine>
-javaagent:${settings.localRepository}/org/springframework/spring-agent/2.5.4/spring-agent-2.5.4.jar
</argLine>
<useSystemClassloader>true</useSystemClassloader>
</configuration>
</plugin>
這樣看來,好像有一些問題與設置,雖然我所遇到的如何實現的AspectJ /加載時間編織了不少例子,他們似乎都使用Eclipse插件1)我在嘗試g以避免使用任何插件和2)我正在使用Intellij。任何幫助將非常感激。
謝謝。
添加這個似乎是調用XmlBeanDefinitionStoreException,「匹配的通配符是嚴格的,但沒有聲明可以找到元素的上下文:load-time-weaver'」,我需要添加一個Maven的依賴爲此工作? – Andrew
你需要'spring-context.jar'(順便說一下,你使用的是過時的Spring版本),你必須定義'xmlns:context'命名空間 - 參見Spring [docs](http://static.springsource.org/spring/docs /2.5.x/reference/xsd-config.html)和我的[博客](http://nurkiewicz.blogspot.com/2009/10/yesterday-i-had-pleasure-to-participate.html) –