随笔分类 -  代理

1 2 下一页

java 的三种代理模式 (三)——性能
摘要:https://cloud.tencent.com/developer/article/2422961 方法调用性能较高,避免了反射调用。 仅限于invokeSuper,so spring的cglib代理仍然用了反射 https://www.cnblogs.com/zwwhnly/p/1734002 阅读全文

posted @ 2025-07-30 23:51 silyvin 阅读(10) 评论(0) 推荐(0)

reflectionasm性能
摘要: 阅读全文

posted @ 2025-04-21 22:58 silyvin 阅读(7) 评论(0) 推荐(0)

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 阅读(179) 评论(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 阅读(66) 评论(0) 推荐(0)

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

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

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

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

代理侵入框架与guice
摘要:1 背景 UserAuthFilter - DefaultUserService - RitsCorpDirectoryServiceUtil - DefaultCorpDirectoryService.(AbstractCorpDirectoryService implements CorpDir 阅读全文

posted @ 2021-01-07 17:11 silyvin

当动态代理遇到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 阅读(301) 评论(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 阅读(1852) 评论(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 阅读(185) 评论(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 阅读(276) 评论(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 阅读(373) 评论(0) 推荐(0)

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

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

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

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

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

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

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

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

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

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

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

posted @ 2019-12-13 01:09 silyvin 阅读(789) 评论(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 阅读(1878) 评论(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 阅读(742) 评论(0) 推荐(0)

1 2 下一页