JDK与CGLIB的动态代理

JDK动态代理

创建代理的方法
将需要代理的类传入代理类中(通过构造方法)
在代理方法中创建代理实例(需要一个接口和一个实现接口的类):

Proxy.newProxyInstance(类的加载器(类.getClass().getClassLoader()),实现的接口(类.getClass.getInterfaces()),接口的实例化对象(this或者通过匿名类new的对象));

This关键字?代指当前对象------------通过this需要代理类实现InvocationHandler接口

重写invoke()方法

调用增强后的对象

CGLIB的动态代理

Jdk动态代理需要实现接口,CGLIB则是为一个类创建子类不需要接口

引入CGLIBjar包或者spring的依赖包
创建代理的方法
将需要代理的类传入代理类中(通过构造方法)
在代理方法中创建代理实例

代理类实现MethodInterceptor接口

实现intercept方法

总结

最新文章

  1. CentOS系统下安装配置ftp服务
  2. 升级到iOS9之后的相关适配
  3. 每一个程序员需要了解的10个Linux命令
  4. java解析xml禁止校验dtd
  5. 11g 重建EM 报ORA-20001: SYSMAN already exists
  6. ubuntu netbeans compile ygopro client with google protobuf lib
  7. MSSQL BACKUP WEBSHELL
  8. Namespace declaration statement has to be the very first
  9. maven, sesame, openrdf, eclipse 的初始学习
  10. css中的media
  11. Help improve Android Studio by sending usage statistics to Google
  12. Javascript中的bind()函数
  13. Excception and Error
  14. ERROR namenode.NameNode: Failed to start namenode. java.lang.IllegalArgument
  15. 谷歌浏览器运行Flash
  16. Python之缩进块
  17. Visual Stuido快捷键
  18. visualstudio学习
  19. salt之grains组件
  20. Python 执行主程序

热门文章

  1. Spring boot-(3) Spring Boot特性2
  2. 介绍几个关于C/C++程序调试的函数
  3. grunt项目构建
  4. webpack打包将配置文件单独抽离不压缩打包
  5. python3绘图示例5(基于matplotlib:正弦图等)
  6. 笨办法学Python(三十一)
  7. Kalman filter, Laser/Lidar measurement
  8. Spring MVC框架下提交Date数据无法在controller直接接收
  9. AD的命名规则 AD常用产品型号命名规则
  10. Selenium入门12 鼠标和键盘事件