cglib动态代理模式

public interface SleepService { void sleep();}public class SleepServiceImpl implements SleepService { @Override public void sleep() { System.out.println(“睡觉了”); }}import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy;import java.lang.reflect.Method;public class SleepServiceProxy implements MethodInterceptor { @Override public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable { System.out.println(“睡觉前关灯”); Object result = methodProxy.invokeSuper(o, objects); return result; }}import net.sf.cglib.proxy.Enhancer;public class MainTest { public static void main(String[] args) { Enhancer enhancer = new Enhancer(); //cglib 可以没有接口 直接对类进行代理 spring动态代理必须有接口 enhancer.setSuperclass(SleepServiceImpl.class); enhancer.setCallback(new SleepServiceProxy()); SleepServiceImpl sleepServiceImpl = (SleepServiceImpl) enhancer.create(); sleepServiceImpl.sleep(); }} cglib cglib 3.3.0

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
(0)
用户投稿
上一篇 2022年6月15日
下一篇 2022年6月15日

相关推荐

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息