随笔分类 -  代理

cglib获取原始类
摘要:import java.lang.reflect.Proxy; public class ProxyUtils { public static final String GUICE_PROXY_FLAG = "$EnhancerByGuice$"; public static final Strin 阅读全文

posted @ 2023-08-17 13:35 silyvin 阅读(163) 评论(0) 推荐(0) 编辑

当动态代理遇到ioc (六)代理类内存对象模型及ioc反哺模型
摘要:Jdk: Interface Target & TargetImpl 待代理类 Class TargetImpl-jdkproxy : implements Target { 注入ioc容器 InvocationHandler h { 程序员传入 TargetImpl targetImpl 未注入 阅读全文

posted @ 2022-06-17 11:43 silyvin 阅读(54) 评论(0) 推荐(0) 编辑

mybatis jdk动态代理接口时碰到的继承问题
摘要:背景: 基类指针指向派生类对象 仍然调用了基类同名方法 基类方法没有mybatis query注解处理名叫entity对象,再一次看出调用的基类的方法 问题: 1 为什么基类的方法也被mybatis代理了 在 jdk动态代理源码底层(jdk生成字节码及5种字节码生产方式比较)中指出,jdk动态代理使 阅读全文

posted @ 2022-05-11 17:06 silyvin 阅读(77) 评论(0) 推荐(0) 编辑

当动态代理遇到ioc (五)使用cglib切面与自定义类加载器构建独有环境aop日志
摘要:1 当动态代理遇到ioc (四)真正的cglib 利用切面,将传入参数为特定类型的参数打印 2 因为外部启动项有-D,将所有log的配置重定向,而那些文件又改不了; 因此我借助类加载器隔离朴实案例(二)logback的技术,独有一份配置,我希望切面层的日志单独打入一个文件 阅读全文

posted @ 2021-02-10 16:40 silyvin 阅读(161) 评论(0) 推荐(0) 编辑

当动态代理遇到ioc (四)真正的cglib
摘要:0 当动态代理遇到ioc (二)cglib 中的代理仍然不能切子函数,所以有本篇 1 此前已经解决cglib与asm冲突:当动态代理遇到ioc (三)cglib与asm jar包冲突 2 事务的try catch模型由exception扩叨叨throwable 3 抽象层 由于我们反射调用方法时,不 阅读全文

posted @ 2021-01-05 18:01 silyvin 阅读(267) 评论(0) 推荐(0) 编辑

当动态代理遇到ioc (三)cglib与asm jar包冲突
摘要:1 目的:当动态代理遇到ioc (二)cglib 将事务中控迁移到cglib 2 现象:Exception: java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visi 阅读全文

posted @ 2021-01-05 17:33 silyvin 阅读(1750) 评论(0) 推荐(0) 编辑

当动态代理遇到ioc (二)cglib
摘要:接mybatis guice 事务代理切面的代码: package sun.myproxy; import net.sf.cglib.proxy.Enhancer; import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.pr 阅读全文

posted @ 2020-10-07 18:26 silyvin 阅读(177) 评论(0) 推荐(0) 编辑

jdk动态代理与cglib优势劣势以及jdk动态代理为什么要interface (二)自研细节
摘要:1 java 的三种代理模式 (二)——子函数切面 cglib支持非private子函数切面,jdk动态代理不支持 2 java 的三种代理模式 (二)——子函数切面 cglib与jdk对未覆盖Object类的方法,缺省情况下切的不一样 可以被切的隐藏方法(在java object常用方法罗列的方法 阅读全文

posted @ 2020-10-07 17:45 silyvin 阅读(259) 评论(0) 推荐(0) 编辑

cglib与mock,自研mockito
摘要:逻辑: natvie test无法搞定db,也不能在unittest环节搞定——引出mockito mockito无法处理injectmock 非public方法的when、verify——引出simple mockito(实际上mockto可以处理protected inner function, 阅读全文

posted @ 2020-10-01 00:20 silyvin 阅读(353) 评论(0) 推荐(0) 编辑

java 的三种代理模式 (二)——子函数切面
摘要:接java 的三种代理模式 结论: 1 jdk动态代理无法切面子函数,因为jdk动态代理是组合模式,this永远指向被代理origin类的对象,切子函数理论不可行 public class ProxyFactory implements InvocationHandler { //维护一个目标对象 阅读全文

posted @ 2020-09-30 23:33 silyvin 阅读(432) 评论(0) 推荐(0) 编辑

动态代理,没有被代理对象
摘要:1 在mybatis Guice 事务源码解析中,可以发现SqlSessionManager中的sqlSessionProxy使用SqlSession构建的代理 private SqlSessionManager(SqlSessionFactory sqlSessionFactory) { this 阅读全文

posted @ 2020-08-29 15:04 silyvin 阅读(275) 评论(0) 推荐(0) 编辑

动态代理反向
摘要:接java 的三种代理模式 System.setProperty("sun.misc.ProxyGenerator.saveGeneratedFiles", "true"); // 目标对象 IUserDao target = new UserDao(); // 给目标对象,创建代理对象 IUser 阅读全文

posted @ 2020-08-03 23:06 silyvin 阅读(170) 评论(0) 推荐(0) 编辑

注解的继承
摘要:背景:当自定义注解遇到spring和类增强 注解的继承有些复杂,应尽量避免使用 当自定义注解遇到spring和类增强 第1点有改写方法遗失注解案例 public class TestMain { public static void main(String []f) { /** * 结论 * 1 g 阅读全文

posted @ 2020-08-01 18:11 silyvin 阅读(1795) 评论(0) 推荐(0) 编辑

当动态代理遇到ioc
摘要:在 work log 2020.4.28中,我们使用jdk动态代理处理方法的事务增强 图1 问题的引出 根本原因:动态代理和cglib,会丢掉被代理类成员变量和方法上的注解 起先,我们禁止被增强的类里面使用注解注入依赖,代码会自动审核这种情况 private static final class T 阅读全文

posted @ 2020-04-29 17:09 silyvin 阅读(370) 评论(0) 推荐(0) 编辑

jdk动态代理源码底层(jdk生成字节码及5种字节码生产方式比较)
摘要:在前两篇文章中 java 的三种代理模式 jdk动态代理与cglib优势劣势以及jdk动态代理为什么要interface (警惕动态代理导致的Metaspace内存泄漏问题,警惕动态代理导致的Metaspace内存泄漏问题) 讨论了jdk的动态代理 本文从源码级别了解一下,在源代码的基础上,加上 S 阅读全文

posted @ 2019-12-13 01:09 silyvin 阅读(764) 评论(0) 推荐(0) 编辑

jdk动态代理与cglib优势劣势以及jdk动态代理为什么要interface
摘要:先来看一下jdk动态代理原型: IUserDao target = new UserDao(); // 给目标对象,创建代理对象 IUserDao proxy = (IUserDao) new ProxyFactory(target).getProxyInstance(); // 执行方法 【代理对 阅读全文

posted @ 2019-09-20 18:45 silyvin 阅读(1863) 评论(0) 推荐(0) 编辑

spring aop 内部方法与aspectJ
摘要:1)spring aop与aspectJ AspectJ 本身是不支持运行期织入的(编译时、编译后、加载时,Spring是运行期,https://www.cnblogs.com/silyvin/p/11260965.html是加载时),日常使用时候,我们经常回听说,spring 使用aspectJ实 阅读全文

posted @ 2019-07-28 19:49 silyvin 阅读(734) 评论(0) 推荐(0) 编辑

当自定义注解遇到spring和类增强
摘要:1 用spring托管对象调用原生带有自定义注解的方法 GsztbLiveService service = ContextHelper.getBean(GsztbLiveService.class); // service.getClass().getDeclaredMethods(); Meth 阅读全文

posted @ 2019-05-24 17:22 silyvin 阅读(482) 评论(0) 推荐(0) 编辑

java 的三种代理模式
摘要:(一)https://mp.weixin.qq.com/s?__biz=MzI4Njc5NjM1NQ==&mid=2247485265&idx=1&sn=0ea1fe4257cb963d24829f69bb6a32da&chksm=ebd6387ddca1b16b87f12f50b24b239bed 阅读全文

posted @ 2018-04-29 23:54 silyvin 阅读(412) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示