package Demo.java3.动态代理;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.regex.Pattern;/*
动态代理*/
interface Jiekou   //代理接口
{String L1(String a);void L2();
}class GeneralMethod  //通用方法   体系动态代理与AOP(每次只每个类相同的方法,不改变都需要的方法)
{public void Method1() //通用方法1{System.out.println("===================方法1==================");}public void Method2() //通用方法2{System.out.println("===================方法2==================");}}class ProsyClass implements Jiekou  //被代理类
{@Overridepublic String L1(String a) {System.out.println("你好我喜欢"+a);return a;}@Overridepublic void L2() {System.out.println("你好啊我是void空参数代理类");}
}class ProxyClass  //所有东西的代理类
{static Object proxyclass(Object obj) //放入被代理类{Achieve ac=new Achieve();ac.setObj(obj);//传输过去代理类 方便那边调用Object o = Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj.getClass().getInterfaces(), ac);//代理类的加载器       代理类要实现的接口列表  代理类被实现的方法调用InvocationHandler方法中的invoke方法将方法调用分派到的调用处理程序return o;}}
class Achieve implements InvocationHandler//实现类
{private Object obj; //传输进来被代理类public void setObj(Object obj) {this.obj = obj;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable  //对被代理类操作{GeneralMethod gm=new GeneralMethod();//调用他们都不需要被改变的方法     体系动态代理与AOP(每次只每个类相同的方法,不改变都需要的方法)gm.Method1();//方法1(AOP)Object o = method.invoke(obj, args); //传输被代理类的类名,代理的参数名gm.Method2();//方法2(AOP)return o;}
}public class 代理 {public static void main(String[] args) {ProsyClass pr=new ProsyClass();//实例化被代理类Jiekou jk1 = (Jiekou) ProxyClass.proxyclass(pr);//放入代理类 转换成代理类接口//第一个方法String s = jk1.L1("你啊");System.out.println(s);     /* 你啊*///第2个方法jk1.L2();/*  调用一次方法执行一次===================方法1==================你好我喜欢你啊===================方法2==================你啊===================方法1==================你好啊我是void空参数代理类===================方法2==================*/}
}

JAVA-动态代理和AOP相关推荐

  1. Spring中AOP的两种代理方式(Java动态代理和CGLIB代理)

    第一种代理即Java的动态代理方式上一篇已经分析,在这里不再介绍,现在我们先来了解下GCLIB代理是什么?它又是怎样实现的?和Java动态代理有什么区别? cglib(Code Generation ...

  2. Java动态代理和Cglib动态代理最强王者阵容

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨黎杜 来源丨非科班的科班(LDCldc1230 ...

  3. AspectJ和Spring AOP(java动态代理和CGLIB)简单介绍

    1.AOP介绍 什么是AOP:AOP就是面向切面编程.使用的背景: 1)我们的振隆维护着一千个方法,一天老板让振隆把这一千个方法都要加上事务代码(统一代码) 2)振隆咬咬牙,添加了一个新的方法,然后让 ...

  4. 动态代理(2)----动态代理和AOP

    根据前面介绍的Proxy和InvocationHandler,实在很难看出这种动态代理的优势,下面介绍一种更实用的动态代理机制. 只要我们开发一个实际使用的软件系统,总会出现相同代码重复出现的情形,在 ...

  5. 大数据笔记(六)——HDFS的底层原理:JAVA动态代理和RPC

    一.Java的动态代理对象 实现代码如下: 1.接口类MyService package hdfs.proxy;public interface MyService {public void meth ...

  6. java动态代理和cglib动态代理

    本文转自: http://blog.csdn.net/leon709/article/details/9529307 动态代理应用广泛,spring,Struts等框架很多功能是通过动态代理,或者进一 ...

  7. Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理

    Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理 代理模式 JDK动态代理 CGLIB动态代理 代理模式 代理模式是23种设计模式的一种,指一个对象A通过持有另一个对象B,可以具有B ...

  8. Spring AOP源码分析(二)JDK动态代理和CGLIB介绍

    2019独角兽企业重金招聘Python工程师标准>>> 本篇是介绍java实现代理对象的两种方法,JDK动态代理和CGLIB. JDK动态代理:针对你所调用的方法是接口所定义的方法. ...

  9. AOP的底层实现-CGLIB动态代理和JDK动态代理

    AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础.它是一种面向切面编程的思想.关于AOP的基础知识,相信多数童鞋都已经了如指掌,我们就略过这部分,来 ...

  10. Java中的原生动态代理和CGLIB动态代理的原理,我不信你全知道!

    作者:CarpenterLee cnblogs.com/CarpenterLee/p/8241042.html 动态代理在Java中有着广泛的应用,比如Spring AOP,Hibernate数据查询 ...

最新文章

  1. 结队项目——第一次作业
  2. Android开发中libs包下面的mips、armeabi、armeabi-v7a和x86
  3. BZOJ1503:[NOI2004]郁闷的出纳员——题解
  4. jquery easyui datagrid 分页 详解
  5. c++采集声卡输出_其实声卡不单单只有音效,更多功能看这篇就对了
  6. Android中实现不同文字颜色和图文混排的Span总结
  7. MySQL Infobright 数据仓库快速安装笔记[转]
  8. 机器学习简介及学习思维导图
  9. Python在视频处理上的优势有哪些
  10. flask与js交互的示例代码_Frida Java Hook 详解(安卓9):代码及示例(上)
  11. C/C++-获取成员变量的指针
  12. Linux下的Apache和PHP安全设置
  13. Win 7 下IE 的cookie 以及 Favorites 地址
  14. Java升级jdk_JDK版本升级
  15. 自由软件、开源软件、免费软件、共享软件和商业软件
  16. C#个人邮箱发邮件给多个邮箱
  17. 初次见面——C语言的整体把握【小白福音】
  18. 基于深度学习的移动网络异常检测
  19. 航测无人机-任务规划模块 竞品分析
  20. 如何优化关键词搜索排名(提升关键词排名的方法)

热门文章

  1. 奥斯汀页眉怎么设置_word红头文件怎么制作
  2. 程序实现蒙特卡洛算法计算PI值和积分
  3. Prometheus监控神技--自动发现配置
  4. win7下装ubuntu双系统 硬盘安装详细教程
  5. easypermission坑_Android 权限管理(原生、EasyPermissions、RxPermissions)-阿里云开发者社区...
  6. oracle数据结构体
  7. PHP 全局变量 - 超全局变量
  8. 设计思维应用:与商业模式结合,让创新落地
  9. html 整体缩小zoom,页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
  10. MathorCup大数据竞赛B题Baseline(持续更新)