(开发环境是MyEclipse)

静态代理示例

HellowStaticProxy代理, HellowObject被代理

HellowObject和HellowStaticProxy实现iHellowProxy接口

(iHellowProxy中声明被需要被代理的方法)

iHellowProxy接口:

HellowObject类:

HellowStaticObject类:

测试:

通过静态代理添加日志。

(如果在HellowObject中直接记录日志,之后需求变动时,要回到源码中修改。HellowObject只需要实现简单的hellow方法,有可能变动需求的记录日志功能和hellow方法分开,开闭原则)

JDK动态代理

(基于反射,不需要创建静态代理实现固定接口,灵活性更高)

(iHellowProxy接口和HellowObject类不变)

DynamicProxy类:

测试:

(在使用log4j记录日志,记得在BuildPath中把jar包导进来,并且在根目录下放log4j.properties)

(log4j.properties可以修改显示的Level,示例的rootLogger=info,stdout)

spring的AOP通过动态代理实现。通过动态代理,可以增强方法,如事务管理,添加日志等

(小菜鸟的学习记录)

转载于:https://www.cnblogs.com/mySerilBlog/p/8424202.html

静态代理和JDK动态代理相关推荐

  1. java代理(静态代理和jdk动态代理以及cglib代理)

    说到代理,脑袋中浮现一大堆代理相关的名词,代理模式,静态代理,jdk代理,cglib代理等等. 记忆特别深刻的是,一次面试中,一位面试官问我,spring的AOP核心采用的设计模式是什么什么模式,阅读 ...

  2. java静态代理和JDK动态代理

    静态代理 编译阶段就生产了对应的代理类 public interface IBussiness {void execute(); } public class BussinessImpl implem ...

  3. cglib动态代理和JDK动态代理

    cglib动态代理和JDK动态代理 maven依赖 cglib动态代理需要jar包支持,CGLib采用了非常底层的字节码技术. <!-- https://mvnrepository.com/ar ...

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

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

  5. cglib动态代理和jdk动态代理的区别

    jdk动态代理和cglib动态代理执行时都会生成行的calss文件,jdk生成一个,cglib会生成四个 Jdk动态代理生成一个文件继承proxy类实现代理接口,因为java不能多继承的特性,所以只能 ...

  6. cglib动态代理和jdk动态代理的区别与应用

    1,引入 如果从一个Controller调用Service的非事务方法a,然后在a里调用事务方法b,b事务生效吗? public void update() {updateActual();int a ...

  7. Spring 静态代理+JDK动态代理和CGLIB动态代理

    代理分为两种:静态代理 动态代理 静态代理:本质上会在硬盘上创建一个真正的物理类 动态代理:本质上是在内存中构建出一个类. 如果多个类需要进行方法增强,静态代理则需要创建多个物理类,占用磁盘空间.而动 ...

  8. 什么是代理模式?代理模式有什么用?通过一个小程序分析静态代理和动态代理。自己简单实现动态代理。JDK动态代理和CGLIB动态代理的区别。

    1. 代理模式有什么用 ①功能增强,在实现目标功能的基础上,又增加了额外功能.就像生活中的中介一样,他跟两边客户会有私下的交流. ②控制访问,代理不让用户直接和目标接触.就像中间商一样,他们不会让我们 ...

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

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

最新文章

  1. Pod详解-端口设置
  2. 内蒙古大学计算机组成原理实验,内蒙古大学计算机组成原理期末练习0
  3. 计算机系统操作工五级证件,计算机系统操作工国家职业标准.doc
  4. 解决idea文件名称大小写导致GIT无法提交问题
  5. 项目部署到weblogic后页面乱码问题
  6. javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found
  7. LGOJP2831 愤怒的小鸟
  8. Small game written by Python 2021/1/7
  9. 8音度dsp调音教程_以速腾为例,对比加高品质DSP功放前后音响效果
  10. python cls方法_python – cls()函数在类方法中做了什么?
  11. 房屋登记官考核模拟题(6)
  12. H3C(s1850)初始化配置流程
  13. 基于MATLAB人脸面部检测的口罩识别系统
  14. 4成药企要退出,他们的药代知道吗?
  15. python英文词云代码_Python 词云 【中/英】小白简单入门教程
  16. 安卓手机哪个服务器信号最强,安卓手机最强性能前十排行,第一名再逆袭第二名有争议...
  17. Eviews如何做VAR
  18. 遥感图像处理-Spectral–Spatial Weighted Kernel Manifold Embedded Distribution Alignment for Remote Sensing
  19. 钢琴节拍器的作用有哪些-免费的小星星电子节拍器
  20. 基于jsp,ssm公交查询系统

热门文章

  1. 征战蓝桥 —— 2018年第九届 —— C/C++B组第3题——乘积尾零
  2. 【MFC】显示系统时间的状态栏
  3. 【MFC】根据菜单创建工具栏
  4. 【Tools】MarkDown教程(二)-MarkDown基本语法
  5. 【Linux】一步一步学Linux——write命令(236)
  6. 【Android】Android中WIFI开发总结(一)
  7. 深度linux引导安装,全程演示Linux Deepin 12.06安装过程
  8. wangEditor Java富文本的图片上传
  9. 树莓派wiringPi库详解
  10. 每天一道LeetCode-----数独盘求解