首页 > 其他分享 >cglib

cglib

时间:2024-04-29 12:01:12浏览次数:30  
标签:enhancer class Object DataConverterComponentInterceptor cglib public DataConvert

测试服务

public class DataConverterComponent {
    public void convert() {
        System.out.println("DataConverterComponent convert");
    }
}

cglib代理类,需要实现MethodInterceptor接口

public class DataConverterComponentInterceptor implements MethodInterceptor {
    @Override
    public Object intercept(Object o, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
        System.out.println("DataConverterComponentInterceptor 前");
        Object result = methodProxy.invokeSuper(o, args);
        System.out.println("DataConverterComponentInterceptor 后");
        return result;
    }
}

测试main

public class DataConverterComponentMain {
    public static void main(String[] args) {
        Enhancer enhancer = new Enhancer();
        enhancer.setSuperclass(DataConverterComponent.class);
        enhancer.setCallback(new DataConverterComponentInterceptor());
        DataConverterComponent dataConverterComponent = (DataConverterComponent) enhancer.create();
        dataConverterComponent.convert();
    }
}

 

标签:enhancer,class,Object,DataConverterComponentInterceptor,cglib,public,DataConvert
From: https://www.cnblogs.com/use-D/p/18165377

相关文章

  • JDK proxy 和cglib 源码解读
    HelloWorld1JDKProxy案例创建接口packagecom.gientech.proxy.jdk;publicinterfaceICalculator{publicIntegeradd(Integeri,Integerj);publicIntegersub(Integeri,Integerj);publicIntegermul(Integeri,Integerj);publicIntegerdiv......
  • cglib FastClass机制
    前言关于动态代理的一些知识,以及cglib与jdk动态代理的区别,在这一篇已经介绍过,不熟悉的可以先看下。本篇我们来学习一下cglib的FastClass机制,这是cglib与jdk动态代理的一个主要区别,也是一个面试考点。我们知道jdk动态代理是使用InvocationHandler接口,在invoke方法内,可以使用Meth......
  • spring--CGLIB动态代理的实现原理
    CGLIB(CodeGenerationLibrary)是一个强大的、高性能、高质量的代码生成库,它可以在运行时扩展Java类和实现Java接口。CGLIB动态代理是基于继承的方式来实现的,它不需要接口,可以代理普通类。以下是CGLIB动态代理的实现原理:继承:CGLIB动态代理通过继承目标类来创建子类,并在......
  • spring--JDK动态代理和CGLIB代理的区别
    JDK动态代理和CGLIB代理是Java中常用的两种动态代理实现方式,它们各有特点和适用场景:JDK动态代理:JDK动态代理是基于接口的代理方式,它使用Java反射机制来创建代理对象,并要求目标对象实现一个或多个接口。在代理过程中,JDK动态代理会创建一个实现了目标对象所有接口的代......
  • 在idea中无法查看org.springframework.cglib.core.Signature.java 源码
    一、现象1.点击ideaDownloadSource,没有变化;ChouseSource也无济于事。2.打开下载的源码包,惊奇的发现确实没有对应的源码。3.问题发生在哪儿?原来是这些包原本不属于spring,spring在编译的时候直接修改了包名称。 ......
  • Java:SpringBoot实现JDK动态代理和CGLIB动态代理
    (目录)需要代理的对象//接口publicinterfacePayService{voidpay();}//实现publicclassAliPayServiceimplementsPayService{@Overridepublicvoidpay(){System.out.println("AliPayService");}}1.JDK动态代理在JDK动态代......
  • ibatis报net.sf.cglib.beans.BulkBeanException异常
    现象:错误原因分析:因为查询出来的sql中有几个字段查出来的值是为空 is_public,is_member_valid,is_admin_validmodel类中有几个属性 /*公开标志*/ privateintis_public; /*会员启用标志*/ privateintis_member_valid; /*管理员启用标志*/ privateintis_admin_val......
  • javeee spring cglib动态代理
    cglib动态代理依赖<dependency><groupId>cglib</groupId><artifactId>cglib-nodep</artifactId><version>3.2.4</version></dependency>代理类packagecom.test.cglibProxy;importnet.sf.cglib.proxy.En......
  • CGLIB动态代理对象GC问题排查
    一、问题是怎么发现的最近有个新系统开发完成后要上线,由于系统调用量很大,所以先对核心接口进行了一次压力测试,由于核心接口中基本上只有纯内存运算,所以预估核心接口的压测QPS能够达到上千。压测容器配置:4C8G先从10个并发开始进行发压,结果cpu一下就飙升到了100%,但是核心接口的qp......
  • 10_Spring_CGLIB动态代理
    10_Spring_CGLIB动态代理proxy动态代理面向接口1必须有接口和实现类2增强接口中定义的方法3只能读取接口中方法的上注解cglib动态代理模式面向父类packagecom.msb.testCglib;importorg.junit.Test;importorg.springframework.cglib.proxy.Enhancer;importorg.s......