1

現在のプロジェクトで Spring を使用していますが、@Configurable アノテーションが機能しません。

私はいくつかのクラスで注釈を使用しました (それらのほとんどは JPA エンティティ):

@Configurable  
@Entity  
public class Person{  
...  
  @Inject  
  private PersonService service;  
...  
}  

私は自分のpom.xmlにaspectj-mavenプラグインを入れました:

<plugin>

<groupId>org.codehaus.mojo</groupId>  
<artifactId>aspectj-maven-plugin</artifactId>  
<version>1.4</version>
<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>  
</dependencies>  
<executions>  
<execution>  
<phase>process-sources</phase>  
<goals>  
<goal>compile</goal>  
<goal>test-compile</goal>  
</goals>  
</execution>  
</executions>  
<configuration>  
<outxml>true</outxml>  
<showWeaveInfo>true</showWeaveInfo>  
<Xlint>ignore</Xlint>  
<aspectLibraries>  
<aspectLibrary>  
<groupId>org.springframework</groupId>  
<artifactId>spring-aspects</artifactId>  
</aspectLibrary>  
</aspectLibraries>  
<source>${java.version}</source>  
<target>${java.version}</target>  
<weaveWithAspectsInMainSourceFolder>false</weaveWithAspectsInMainSourceFolder>  
</configuration>  
</plugin>

ただし、Spring の側面はコンパイル時に読み込まれないため、@Inject アノテーションは機能しません。

4

1 に答える 1

1

問題は、maven のコンパイル バージョンです。

バージョン 2.5.1 では、Spring アスペクトが正常にロードされます。

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.5.1</version>
  <configuration>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <encoding>${project.build.sourceEncoding}</encoding>
  </configuration>
</plugin>

しかし、バージョン 3.1 ではアスペクトが機能しません。

これは動作しません:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.1</version>
  <configuration>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <encoding>${project.build.sourceEncoding}</encoding>
  </configuration>
</plugin>
于 2013-10-06T21:34:25.260 に答える