我想知道AOP实际如何工作,是否有一种方法可以创建自己的AOP。相同的步骤应采取什么步骤和最佳做法?
最佳答案
本质上,AOP有两种不同的概念:
Class-weaving:使用此概念创建“建议”,可以在编译字节码时将其转换为常规的Java代码。 (尽管有可能在运行时执行此操作)。这种方法允许您编写一次代码,并(通过建议)将此代码分布在可能彼此无关的许多类中。
Proxy-based:您可以想象这是“装饰器”设计模式的示例用法。使用字节码检测某些库(例如cglib),您可以拦截函数调用并添加自己的代码以预先执行。这是一种更“自然”的(而且肯定更简单)的方法,因此,如果您真的要实现自己的AOP库,那么可能是更好的方法。
关于java - 核心Java-创建自定义AOP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32600692/