当前位置: 首页 > news >正文

如何在免费网站上做推扩自然志 wordpress

如何在免费网站上做推扩,自然志 wordpress,怎么建设一个论坛网站,有模板了怎么建设网站文章目录 一、JDK动态代理1、关键类和接口2、实现步骤 二、CGLIB动态代理1、关键类2、实现步骤 三、总结 Java中的动态代理是一种设计模式#xff0c;它允许在运行时创建代理对象#xff0c;而不是在编译时。代理对象可以用来代理真实对象的方法调用。 Java中的动态代理主要… 文章目录 一、JDK动态代理1、关键类和接口2、实现步骤 二、CGLIB动态代理1、关键类2、实现步骤 三、总结 Java中的动态代理是一种设计模式它允许在运行时创建代理对象而不是在编译时。代理对象可以用来代理真实对象的方法调用。 Java中的动态代理主要有两种实现方式JDK动态代理和CGLIB动态代理。 一、JDK动态代理 JDK动态代理使用Java标准库中的java.lang.reflect包来创建代理对象。它适用于实现了接口的类通过接口类型来代理对象。 1、关键类和接口 InvocationHandler接口 这是一个接口必须实现其invoke方法代理对象的所有方法调用都会转发到这个方法。Proxy类 这是一个用来创建代理对象的类提供了静态方法newProxyInstance来生成代理对象。 2、实现步骤 1定义接口和实现类 public interface MyService {void perform(); }public class MyServiceImpl implements MyService {Overridepublic void perform() {System.out.println(Executing perform method);} }2实现InvocationHandler接口编写代理逻辑 import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method;public class MyInvocationHandler implements InvocationHandler {private Object target;public MyInvocationHandler(Object target) {this.target target;}Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.out.println(Before method invoke);Object result method.invoke(target, args);System.out.println(After method invoke);return result;} }3使用Proxy.newProxyInstance方法创建代理对象 import java.lang.reflect.Proxy;public class Main {public static void main(String[] args) {MyService myService new MyServiceImpl();MyInvocationHandler handler new MyInvocationHandler(myService);MyService proxyInstance (MyService) Proxy.newProxyInstance(myService.getClass().getClassLoader(),myService.getClass().getInterfaces(),handler);proxyInstance.perform();} }二、CGLIB动态代理 CGLIBCode Generation Library是一种强大的字节码生成库它允许在运行时创建子类适用于没有实现接口的类。CGLIB通过继承被代理类来创建代理对象因此无法代理final类。 1、关键类 Enhancer类 这是CGLIB用来生成代理类的主要类通过设置超类和回调来创建代理对象。MethodInterceptor接口 这是一个接口类似于InvocationHandler需要实现intercept方法。 2、实现步骤 1添加CGLIB依赖 在项目中添加CGLIB库的依赖。对于Maven项目 dependencygroupIdcglib/groupIdartifactIdcglib/artifactIdversion3.3.0/version /dependency2定义实现类定义一个没有实现接口的类 public class MyService {public void perform() {System.out.println(Executing perform method);} }3实现MethodInterceptor编写代理逻辑。 import net.sf.cglib.proxy.MethodInterceptor; import net.sf.cglib.proxy.MethodProxy; import java.lang.reflect.Method;public class MyMethodInterceptor implements MethodInterceptor {Overridepublic Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable {System.out.println(Before method invoke);Object result proxy.invokeSuper(obj, args);System.out.println(After method invoke);return result;} }4使用Enhancer类创建代理对象。 import net.sf.cglib.proxy.Enhancer;public class Main {public static void main(String[] args) {Enhancer enhancer new Enhancer();enhancer.setSuperclass(MyService.class);enhancer.setCallback(new MyMethodInterceptor());MyService proxyInstance (MyService) enhancer.create();proxyInstance.perform();} }三、总结 JDK动态代理适用于实现了接口的类通过InvocationHandler处理代理逻辑。CGLIB动态代理适用于没有实现接口的类通过继承实现代理使用MethodInterceptor处理代理逻辑。性能更优。 动态代理在AOP面向切面编程、拦截器、权限控制、事务管理等领域有广泛应用提供了灵活的方式来在运行时增强对象行为。
http://www.dnsts.com.cn/news/16540.html

相关文章:

  • wordpress源码类主题大连seo排名外包
  • 天安云谷网站建设做网站如何提需求
  • 做网站的天津c asp.net 发布网站
  • 做网站企业 金坛清河做网站哪里好
  • 深圳个人网站制作网站建设期末作业
  • 周杰伦做的广告网站汕头自动seo
  • 手机网站怎样做旅游网网站建设
  • 网站做3年3年包括什么软件吗linux php网站部署
  • 网站建设3要素sw网站建设
  • 网站底部关键词内链谷歌paypal官网入口
  • 带数据库的网站模板湖北省市政工程建设网站
  • 典当网站如何制作一款小程序
  • 免费网站推广工具1建设网站的重要性
  • 网站收录代做泉州网站开发人员
  • 石家庄新闻最新消息网站首页的优化
  • 徐州网站平台制作公司杭州首传网站建设公司怎么样
  • 宝安电子厂做网站简约网站建设
  • 上海快速建设网站公司设计网站推荐提升审美
  • 专业网站建设公司兴田德润信任高摄影网站模板源码
  • 做产品的往这看:国外工业设计网站大全!德国诺莫斯手表网站
  • 网站服务器证书有问题西安网站开发软件
  • 青海省建设厅职业注册官方网站网站后台免费模板下载
  • 做网站的公司重庆成品网站短视频源码搭建
  • 门户网站信息发布管理办法网页设计开发培训
  • 怎样做分类网站哪个网站做3d模型
  • 乌市正规网站建设公司车辆管理系统软件
  • 免费网站建设图书下载进口网站建设
  • 小说网站排名怎么做网站建设分金手指排名二六
  • 电子商务网站开发的步骤莱芜网站制作哪家好
  • 深圳做网站公怎么 从头开始建设一个网站