以下爲我工作:
創建一個名爲:目錄META-INF
(同樣持有persistence.xml
目錄下aop.xml
修改webApplicationContext.xml
包括在Spring方面豆你emf
豆的定義(在主項目中src/java/resources
)
包括rele和pom.xml
很多依賴關係。
請務必告訴您想要編譯Java 7代碼的aspectj插件,否則它會嘗試使用默認的AspectJ-1.6編織器編織您的1.7代碼。
1 - aop.xml文件
<!DOCTYPE aspectj PUBLIC
"-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver>
<!-- only weave classes in our application-specific packages -->
<include within="com.example.*"/>
</weaver>
<aspects>
<!-- weave in just this aspect -->
<aspect name="com.example.aspect.NullifyNoResultExceptionAspect"/>
</aspects>
</aspectj>
2 - WebApplicationContext.xml
了EMF豆應該是這個樣子:
<bean id="emf"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="za.org.serviceseta.model" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="${hibernate.showsql}" />
<property name="generateDdl" value="${jpa.generateDdl}" />
<property name="databasePlatform"
value="org.hibernate.dialect.MySQLDialect" />
</bean>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
<property name="loadTimeWeaver">
<bean
class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver" />
</property>
</bean>
_注意一些教程告訴你包括<context:load-time-weaver />
,但那隻能起作用爲toplink,不適用於春天;春天想看豆子。
3 - 的pom.xml - 第1部分:告訴jetty-maven-plugin
使用彈簧javaagent
<build>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.0.0.M5</version>
<configuration>
<forkMode>once</forkMode>
<argLine>
-javaagent:"${settings.localRepository}/org/springframework/spring-instrument/${spring.framework.version}/spring-instrument-${spring.framework.version}.jar"
</argLine>
....
3 - 的pom.xml - 部分2:aspectj-maven-plugin
<project>
....
<properties>
<aspectj.version>1.7.2</aspectj.version>
<!-- note that AspectJ warns you that it prefers 1.6.11, but this works -->
.....
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>aspectj-maven-plugin</artifactId>
<version>1.4</version>
<configuration>
<showWeaveInfo>true</showWeaveInfo>
<source>1.7</source> <!-- need these for Java 7! -->
<target>1.7</target> <!-- need these for Java 7! -->
<Xlint>ignore</Xlint>
<complianceLevel>1.7</complianceLevel> <!-- need these for Java 7! -->
<encoding>UTF-8</encoding>
<verbose>false</verbose>
<aspectLibraries>
<aspectLibrary>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
</aspectLibrary>
</aspectLibraries>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
</dependencies>
</plugin>
3 - pom.xml第3部分:依賴關係
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${aspectj.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-agent</artifactId>
<version>2.5.6</version>
</dependency>
如果我遺漏了任何東西,請隨時發表評論。
你的配置在java 6中有效嗎? – eis 2013-02-27 17:39:08
不,我有一個Java 7項目,我只是詳細介紹了設置以備將來參考。 – Johan 2013-02-27 17:48:18