JavaEE杂项- spring AOP的实现方式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaEE杂项- spring AOP的实现方式相关的知识,希望对你有一定的参考价值。
1. 传统的代理模式。
package springAOP;
public class SubjectProxy implements IsubJect {
private ISubject subject;
public String Request(){
//add pre-process logicif neccesary
subject.request();
//add post process if neccesary
}
public ISubject getSubject(){
return subject;
}
public void setSubject(ISubject subject){
this.subject=subject;
}
}
这种方法缺点是要为每一个被带离对象创建单独的代理类。 在需要代理的功能很多时是一个灾难。
2. 通过java反射机制的动态代理
主要是由java.lang.reflect.Proxy和java.lang.reflect.InvocationHandler接口实现。 具体可以参考其他例子。
该接口必须实现的invoke函数就可以看成是AOP种的Advice
3.通过CGLIB动态生成字节码。 即利用CGLIB生成要被代理的类的子类然后覆写相应方法并插入处理逻辑
以上是关于JavaEE杂项- spring AOP的实现方式的主要内容,如果未能解决你的问题,请参考以下文章
JavaEE手写AOP实现,自动代理, AOP 面向切面的编程思想