aop思想
原来我们java编程是抽离出来,之后哪个需要这个增强类需要类中引用
aop思想:通过配置来实现,所有类要用到的同一个类会在配置中去实现,在java运行的过程中使用
aop实现
- 通过JDK的方法来实现:动态代理但是实现方式必须是接口实现,
Target target =new Target() TargetInterface proxy=(TargetInterface)Proxy.newProxyInstance( target.getClass().getClassLoader(), //目标类加载器 target.getClass().getInterfaces(), //目标对象相同的接口字节数组 new InvocationHandler(){ public Object invoke(Object proxy,Method method,Object[] args)throws Throwble{ ... // 这里可以先实现之前的方法 method.invoke(target ,args) //实现目标对象 ... // 这里可以先实现之后的方法 return null; } } ) //Jdk代理实现
- 通过第三方cglib方法实现:父类
// cglib方法 Target target =new Target(); // 实现增强器 Enhancer enhancer=new Enhancer(); //设置父类(目标) enhancer.setSuperclass(Target.class); // 设置回调 enhander.setCallback(new MethodInterceptor){ public Object intercept(Object proxy,Method method,Object[] args,MethodProxy methodProxy)throws Throwble{ ... // 这里可以先实现之前的方法 Object invoke= method.invoke(target ,args) //实现目标对象 ... // 这里可以先实现之后的方法 return invoke; } } Target target=(Target)enhander.create() //
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)