1

我在当前项目中使用 Spring,但 @Configurable 注释不起作用。

我在我的一些类(大部分是 JPA 实体)中使用了注释:

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

我已将 aspectj-maven 插件放在我的 pom.xml 中:

<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 回答