1

aspectJ別のMavenプロジェクトでクラスを作成しました。

@Aspect
public class AspectE {

    @Pointcut("execution(@EntryPoint * *.*(..))")
    public void defineEntryPoint() {
    }

    @Before("defineEntryPoint()")
    public void setThreadName(JoinPoint joinPoint) {
       ...
    }

    @After("defineEntryPoint()")
    public void removeThreadName(JoinPoint joinPoint) {
        ...
    }
}

次に、2番目のプロジェクトで、いくつかのメソッドに注釈を付け、次のように追加しましたpom.xml

    <dependency>
        <groupId>first-project</groupId>
        <artifactId>first-project</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.7.0</version>
    </dependency>

しかし、それでも側面はまったく見られません。私はいくつかのステップを逃していますか?私は何をすべきか?

4

4 に答える 4

3

これを見ましたか?

AspectJコンパイラMavenプラグイン-使用法

于 2012-09-11T10:33:11.173 に答える
2

ライブラリを使用してコードを正しくウィービングするには、依存関係内およびアスペクトjウィーバー内でコードを宣言する必要があります。

<dependencies>
    <!-- Aspectj lib  -->
    <dependency>
        <groupId>com.my.group</groupId>
        <artifactId>my-aspect-lib</artifactId>
        <version>1.0</version>
    </dependency>

    <!-- Other dependencies -->

</dependencies>

<build>
    <!-- Specific build configuration -->

    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>aspectj-maven-plugin</artifactId>
            <configuration>
                <aspectLibraries>
                    <aspectLibrary>
                        <groupId>com.my.group</groupId>
                        <artifactId>my-aspect-lib</artifactId>
                    </aspectLibrary>
                </aspectLibraries>
            </configuration>
        </plugin>

        <!-- Other plugins configuration -->

    </plugins>
</build>

<!-- Other settings -->

于 2012-09-11T14:11:51.940 に答える
1

コードでアスペクトを織り込む必要があります。これは2つの方法で行うことができます:

ロード時の織り方はもう少し用途が広いですが、適切に設定するのは少し難しいかもしれません。起動時(ウィービングが発生したとき)により多くのCPUを消費し、メモリフットプリントもあります。コンパイル時のウィービングは、明らかにコンパイル中により多くのCPUを消費しますが、再起動するたびに料金を支払う必要はありません。

于 2012-09-11T11:02:05.683 に答える
0

同じ問題が発生しました...しかし、このMavenリポジトリを追加した後は機能しています

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.8.9</version>
</dependency>
于 2016-12-10T18:39:14.083 に答える