纯AspectJ加载时间微调不起作用

问题描述 投票:0回答:1

我正在尝试运行AspectJ加载时间调整的示例。首先,我尝试自己做某事,但没有任何效果。正常的编排效果很好,但是当我尝试使用加载时间编排切入某些库时,什么也没发生。

这是我正在使用的示例存储库-https://github.com/medvedev1088/aspectj-load-time-weaving-example

我做了两次挑战:

1)我添加了Main类-

package com.example.aspectj;

import org.joda.time.Chronology;
import org.joda.time.base.AbstractDateTime;

public class Main {
    public static void main(String[] args) {
        AbstractDateTime time = new AbstractDateTime() {
            @Override
            public long getMillis() {
                return 0;
            }

            @Override
            public Chronology getChronology() {
                return null;
            }
        };
        System.out.println(time.toString());
    }
}

2)我将以下插件添加到pom.xml中以创建可运行的jar-

...
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <groupId>org.apache.maven.plugins</groupId>
    <version>2.4.1</version>
    <executions>
        <execution>
            <id>make-executable-jar-with-dependencies</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.example.aspectj.Main</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </execution>
    </executions>
</plugin>
...

我使用以下命令从目标目录运行此jar:

java -jar aspectj-ltw-example-1.0-SNAPSHOT-jar-with-dependencies.jar

在执行此方法后,应该切入点,但没有执行ascpect。

java aop aspectj load-time-weaving
1个回答
0
投票

您需要确保编织代理已启动,对于LTW场景,它不会自动发生。

java -jar my.jar -javaagent:/path/to/aspectjweaver.jar

AspectJ manual中也有描述。

更新:实际上,AspectJ LTW无法与-jar一起使用,我暂时忘记了这一点。但是,如果您改用它,它将起作用:

java -cp my.jar -javaagent:/path/to/aspectjweaver.jar com.example.aspectj.Main

有关说明,请参阅我的其他答案here

© www.soinside.com 2019 - 2024. All rights reserved.