出现这种情况提示也比较明确 就是传入参数中的ClassLoader并没有找到 传入参数的类 附上报错的代码

public class JdkProxyUtil {public static<T> T getProxy(Class<T> clazz, final ICacheAdapter adapter) {System.out.println(clazz.getClass().getClassLoader()); //输出为null 这是BootStrapClassLoader加载的System.out.println(clazz.getClass().getName()); //输出java.lang.Classreturn (T)Proxy.newProxyInstance(clazz.getClass().getClassLoader(), new Class[]{clazz.getInterfaces()[0]}, new InvocationHandler() {public Object invoke(Object proxy, Method method, Object[] args) throws Throwable,RuntimeException {String name = method.getName();Class<?>[] parameterTypes = method.getParameterTypes();Method declaredMethod = adapter.getClass().getDeclaredMethod(name, parameterTypes);if (declaredMethod == null) {throw new RuntimeException("适配器中找不到适配的方法");}return declaredMethod.invoke(adapter, args);}});}
}

错误原因就是newProxyInstance方法中的第一个参数多了一个.getClass()  手快了 以为传进来的是一个相应的类的Object对象

这样获取的就是java.lang.Class的类加载器 也就是BootStrapClassLoader 而明显我们项目中的的class文件的加载器是AppClassLoader 所以BootStrapClassLoader不能获取到相应的接口的类 报错interface ** is not visible from class loader

JDK动态代理过程中报错interface ** is not visible from class loader相关推荐

  1. JDK 动态代理与 CGLIB 动态代理,它俩真的不一样

    摘要:一文带你搞懂JDK 动态代理与 CGLIB 动态代理 本文分享自华为云社区<一文带你搞懂JDK 动态代理与 CGLIB 动态代理>,作者: Code皮皮虾 . 两者有何区别 1.Jd ...

  2. 23种设计模式——JDK动态代理(AOP)

    文章目录 01 代理 1.1 什么是代理? 1.2 为什么要找中介 02 静态代理 2.1 使用代理模式的作用 2.2 实现代理的方式 2.3 具体实现 2.4 静态代理的优缺点 03 动态代理 3. ...

  3. Spring原理学习(七)JDK动态代理与CGLIB代理底层实现

    AOP 底层实现方式之一是代理,由代理结合通知和目标,提供增强功能. 除此以外,aspectj 提供了两种另外的 AOP 底层实现: 第一种是通过 ajc 编译器在编译 class 类文件时,就把通知 ...

  4. Spring : Spring Aop JDK动态代理调用过程

    1.美图 2.概述 JDK动态代理参考 : JDK动态代理 3.源码 打开JdkDynamicAopProxy类,查看invoke方法: /*** Implementation of {@code I ...

  5. 【干货】JDK动态代理的实现原理以及如何手写一个JDK动态代理

    动态代理 代理模式是设计模式中非常重要的一种类型,而设计模式又是编程中非常重要的知识点,特别是在业务系统的重构中,更是有举足轻重的地位.代理模式从类型上来说,可以分为静态代理和动态代理两种类型. 在解 ...

  6. java jdk动态代理学习记录

    转载自: https://www.jianshu.com/p/3616c70cb37b JDK自带的动态代理主要是指,实现了InvocationHandler接口的类,会继承一个invoke方法,通过 ...

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

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

  8. Jdk动态代理 底层源码分析

    前言 java动态代理主要有2种,Jdk动态代理.Cglib动态代理,本文主要讲解Jdk动态代理的使用.运行机制.以及源码分析.当spring没有手动开启Cglib动态代理,即:<aop:asp ...

  9. AOP、ASPECT、Spring AOP、JDK动态代理、CGLib动态代理

    AOP.ASPECT.Spring AOP.JDK动态代理.CGLib动态代理 1 AOP介绍 1.1 基本定义 AOP(Aspect Oriented Programming)称为面向切面编程,它是 ...

最新文章

  1. 软件工程项目组Z.XML会议记录 2013/09/18
  2. JS 事件冒泡和事件捕获
  3. 使用Maven管理Eclipse Java项目(多modules编译)
  4. Java线程的不同状态
  5. 小议SqlMapConfig.xml配置文件
  6. javascript 框架_克服JavaScript框架疲劳
  7. 前端学习(2239):小滴后台管理系统简介
  8. Oracle 一些常用函数
  9. 随笔 | 读《写给年轻程序员的思考书》ii
  10. 为伍兹乳腺X线摄影数据集开发神经网络
  11. Linux下dig命令使用
  12. 图解内存的工作原理及时序介绍
  13. 【有利可图网】PS实战教程55:打破次元壁,将照片从三次元跨越到二次元
  14. java人机猜拳模块流程图_基于java实现人机猜拳游戏
  15. Using setJavaScriptEnabled can Introduce XSS Vulnerabilities into
  16. 映像文件工具srec
  17. Linux版本Java卸载
  18. 股票自选股基本函数大全-7
  19. 宜信研发邮件POP3/SMTP测试
  20. Comware: Port Link-mode Bridge vs Port Link-mode Route

热门文章

  1. centos7 查看内存使用
  2. 面向对象[方法]定义一个长方形类,定义 求周长和面积的方法
  3. C#不使用委托实现函数回调
  4. windows的ping测试脚本
  5. 计算机网络实验报告文件共享,实验报告局域网的文件共享、互联网的使用.doc...
  6. 读《爱因斯坦文集》第一卷
  7. matlab读取txt数据文件
  8. 深度学习理论——ssd从之前的网络断点接着训练
  9. 南京润和,哎,感概!
  10. OpenLayers 3 坐标、坐标系、投影