核心Java-创建自定义AOP
我想知道AOP实际上是如何工作的,是否有一种方法可以创建我们自己的AOP。应采取哪些步骤和最佳实践?基本上,AOP有两个不同的概念:核心Java-创建自定义AOP,java,aop,Java,Aop,我想知道AOP实际上是如何工作的,是否有一种方法可以创建我们自己的AOP。应采取哪些步骤和最佳实践?基本上,AOP有两个不同的概念: :使用这个概念,您可以创建“建议”,在编译字节码时可以将其转换为常规java代码。(尽管在运行时有这样做的可能性)。这种方法允许您编写一次代码,并且(通过建议)将代码分发到许多可能彼此没有任何关系的类中 :这可以想象为“Decorator”设计模式的一个示例用法。使用字节码指令插入某些库(如cglib),您可以拦截函数调用并添加自己的代码以提前执行。这是一种更“
- :使用这个概念,您可以创建“建议”,在编译字节码时可以将其转换为常规java代码。(尽管在运行时有这样做的可能性)。这种方法允许您编写一次代码,并且(通过建议)将代码分发到许多可能彼此没有任何关系的类中
- :这可以想象为“Decorator”设计模式的一个示例用法。使用字节码指令插入某些库(如cglib),您可以拦截函数调用并添加自己的代码以提前执行。这是一种更“自然”(当然更简单)的方法,因此,如果您真的要实现自己的AOP库,那么这可能是更好的方法
- :使用这个概念,您可以创建“建议”,在编译字节码时可以将其转换为常规java代码。(尽管在运行时有这样做的可能性)。这种方法允许您编写一次代码,并且(通过建议)将代码分发到许多可能彼此没有任何关系的类中
- :这可以想象为“Decorator”设计模式的一个示例用法。使用字节码指令插入某些库(如cglib),您可以拦截函数调用并添加自己的代码以提前执行。这是一种更“自然”(当然更简单)的方法,因此,如果您真的要实现自己的AOP库,那么这可能是更好的方法
- 在对专用包的任何类调用任何方法之前,请记录一些内容
- 获取执行特定方法之前和之后的时间
- 将对类的特定属性的任何访问替换为对数据库元素的直接访问
- 依赖JDK代理:只能处理公共方法调用,但肯定是最简单的方法;另一个限制,无法处理内部调用(来自类本身的调用)
- 依赖CGLib代理:中间方式:需要有限的字节码编辑,可以处理私有方法调用,但仍然无法处理直接属性访问
- 重新实现AspectJ:全功率,但。。。祝你好运李>
- 在对专用包的任何类调用任何方法之前,请记录一些内容
- 获取执行特定方法之前和之后的时间
- 将对类的特定属性的任何访问替换为对数据库元素的直接访问
- 依赖JDK代理:只能处理公共方法调用,但肯定是最简单的方法;另一个限制,无法处理内部调用(来自类本身的调用)
- 依赖CGLib代理:中间方式:需要有限的字节码编辑,可以处理私有方法调用,但仍然无法处理直接属性访问
- 重新实现AspectJ:全功率,但。。。祝你好运李>