静态代理动态代理以及aop
来源:互联网 发布:中欧基金 知乎 编辑:程序博客网 时间:2024/06/02 05:01
静态代理和动态代理
//静态代理interface SubClass{void action();}class SubClasss implements SubClass{public void action(){System.out.println("执行action");}}class Proxy1 implements SubClass{SubClasss s;public Proxy1(SubClasss s){this.s=s;}@Overridepublic void action() {System.out.println("代理类执行");s.action();}}public class ProxyTest {public static void main(String[] args) {SubClass s = new Proxy1(new SubClasss());s.action();//动态代理Protest p = new Protest();Object o =p.blind(s);SubClass ss = (SubClass) o;ss.action();Childclass c = new Childclass();ParentClass pa =(ParentClass) p.blind(c);pa.action();}}//动态代理interface ParentClass{void action();}class Childclass implements ParentClass{@Overridepublic void action() {System.out.println("执行childclass的action方法");}}class Protest implements InvocationHandler{Object obj;public Object blind(Object obj){this.obj=obj;return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), this);}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println("invoke方法");Object returnVal = method.invoke(obj, args);return returnVal;}}aop
interface Parent{void fly();void action();}class Child implements Parent{@Overridepublic void fly() {System.out.println("i believe i can fly");}@Overridepublic void action() {System.out.println("执行action");}}class ChildUtil{void method1(){System.out.println("=======方法一=======");}void method2(){System.out.println("=======方法二=======");}}class MyInvocation implements InvocationHandler{Object obj;void setObj(Object obj){this.obj=obj;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {ChildUtil child = new ChildUtil();child.method1();Object o = method.invoke(obj, args);child.method2();return o;}}class Protest2{public static Object getProxyInstance(Object obj){MyInvocation m = new MyInvocation();m.setObj(obj);return Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), m);}}public class AopTest {public static void main(String[] args) {Child c = new Child();Object obj = Protest2.getProxyInstance(c);Parent p = (Parent) obj;p.fly();p.action();}}
0 0
- Java静态代理、动态代理以及AOP
- 静态代理动态代理以及aop
- 动态代理和静态代理以及spring的aop
- 动态代理和静态代理以及spring的aop
- 代理模式、静态代理、动态代理、aop
- java中代理,静态代理,动态代理以及spring aop代理方式,实现原理统一汇总
- Spring AOP 静态代理与动态代理
- AOP之静态代理VS动态代理
- spring AOP 静态代理和动态代理
- 动态代理类以及aop
- spring(AOP)静态代理、JDK动态代理、cglib实现代理
- Aop 代理 动态代理
- JAVA中的静态代理、动态代理以及CGLIB动态代理
- Spirng之静态代理、动态代理、以及cglib代理
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java之代理(jdk静态代理,jdk动态代理,cglib动态代理,aop,aspectj)
- Java 三大特质之多态
- Android绘图系列(四)——Canvas操作
- 报org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver: method <init>()
- Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别
- dbus-python服务实现及introspection功能
- 静态代理动态代理以及aop
- numpy数组创建初步
- 新的开始从今天开始
- CNN卷积神经网络新想法
- 内容提供者ContentProvider
- IP地址的组成和分类
- 系统广播大全
- linux学习笔记
- VS2015 Web项目设置远程访问