我可以隐藏由aspectj-maven-plugin创建的***$AjcClosure*.class文件吗?



我正在使用aspectj-maven-plugin在方法中生成记录器,并且该方法是注释驱动的。

编译时,对于定义注释的每个方法,我可以看到在我各自的目标类文件夹中生成了一个***$AjcClosure*.class文件。

问题:

  1. 尽管这是一个编译时活动,但有什么方法可以避免在编译结束后将这些类放在我的类文件夹中?

  2. 如果不是,这些类的目的是什么,它们是否会影响创建的jar/war文件的大小,从而影响应用程序中添加的每个注释的总体开销?

Java 版本 : 1.7 &AspectJ Maven插件当前配置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.5</version>
    <configuration>
        <source>${java.version}</source>
        <target>${java.version}</target>
        <complianceLevel>1.7</complianceLevel>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

在做了几次尝试和错误之后,我认为@Around建议导致了这些类的创建。有关更多详细信息,请参阅有关优化方面的白皮书。

现在,我正在使用@Before和@After建议来实现方法前后的日志记录目的。

可能是错的,但这对我有用。请随时发表您的意见。

最新更新