gpt4 book ai didi

java - 在独立应用程序中简单使用 AspectJ

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:15:06 25 4
gpt4 key购买 nike

假设你有一个方面:

@Aspect
public class MyAspect {
@Pointcut("whatever")
public void anyAnnotation() {}

@Before("anyAnnotation()")
public void anyComponentAdvice(JoinPoint joinPoint) {
System.out.println("DONE");
}
}

你有一个简单的应用程序:

public class MyClass {
public static void main(String[] args) {
// ASPECTJ INITIALIZATION BLOCK
// rest of the code
}
}

您需要在“aspectj 初始化 block ”中放入什么代码才能让应用程序自动识别和应用方面?

对于某些框架,例如 Spring AOP,您可以使用 <aop:aspectj-autoproxy/> ,但如果没有 Spring,我不知道如何做同样的事情。

编辑:欢迎使用其他更简单的方法在执行时拦截方法调用,不考虑方面。

最佳答案

根据我对 AspectJ 的内存,它的工作原理是通过在构建步骤或加载类时修改字节码,将方面“编织”到现有代码中。这些都不能通过您的 main() 方法直接完成。

非直截了当的方式涉及使用 a custom classloader 加载您的应用程序代码文档中提到。

对于独立应用程序,AspectJ 可能仍然是完成您正在尝试做的事情的最佳方式 – 但使用构建时织入。你的 IDE、Ant 和 Maven 应该都支持这个。官方文档包括how to use the Ant tasks . Maven 插件的文档是 here .如果您使用 shell 脚本构建,也可以使用 ajc 命令。至于IDE插件,我只是知道他们在附近,不熟悉他们的使用。

关于java - 在独立应用程序中简单使用 AspectJ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8142572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com