1

如何@Autowired在 Spring Web 应用程序中正确获取 CTW 类?

我见过一些奇怪的运行时行为 wrtaspectJ woven类,包括 LTW 和 CTW。LTW 和 CTW 都表现出相同的奇怪症状,如下所述。在我碰到 JVM 的堆后,他们“似乎”离开了 LTW,但我似乎无法找到我更喜欢的 CTW 解决方案。

我创建了一个 Spring 论坛线程并获得了零牵引力:http: //forum.spring.io/forum/spring-projects/aop/725024-cached-ltw-classes-aren-t-getting-autowired

这里的关键问题是:嵌套异常是

java.lang.NoClassDefFoundError: com//application/thread/MyApplicationJob$AjcClosure3.

这是一个 Maven 项目,我的方面位于不同项目的模块中。这是我的 maven 的 pom 的简要说明:

<project>
  <properties>
    <org.aspectj-version>1.7.3</org.aspectj-version>
    <java-version>1.6</java-version>
    <wendelnet-version>2.3</wendelnet-version>
  </properties>

  <build>
    <plugins>
      <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <version>1.5</version>

            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>

            <configuration>
                <showWeaveInfo>true</showWeaveInfo>
                <verbose>true</verbose>

                <source>${java-version}</source>
                <target>${java-version}</target>
                <complianceLevel>${java-version}</complianceLevel>

                <aspectLibraries>
                    <aspectLibrary>
                        <groupId>com.wendelnet</groupId>
                        <artifactId>my-aspects</artifactId>
                    </aspectLibrary>
                </aspectLibraries>


            </configuration>

            <dependencies>
                <dependency>
                    <groupId>org.aspectj</groupId>
                    <artifactId>aspectjtools</artifactId>
                    <version>${org.aspectj-version}</version>
                </dependency>
            </dependencies>
      </plugin>
    </plugins>
  </build>


  <dependencies>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjtools</artifactId>
        <version>${org.aspectj-version}</version>
    </dependency>

    <dependency>
      <groupId>com.wendelnet</groupId>
      <artifactId>my-aspects</artifactId>
      <version>${wendelnet-version}</version>
  </dependencies>

</project>

该项目编译良好,我希望编织的方法实际上是通过showWeaveInfo. 使用 Spring 3.0.5。

4

0 回答 0