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

信誉好的江苏网站建设wordpress 代码优化

信誉好的江苏网站建设,wordpress 代码优化,国外优秀企业网站欣赏,做网站首页多少钱第一章 AOP前奏 1.1 代理模式 代理模式#xff1a;我们需要做一件事情#xff0c;又不期望自己亲力亲为#xff0c;此时#xff0c;可以找一个代理【中介】 我们【目标对象】与中介【代理对象】不能相互转换#xff0c;因为是“兄弟”关系 1.2 为什么需要代理【程序中…第一章 AOP前奏 1.1 代理模式 代理模式我们需要做一件事情又不期望自己亲力亲为此时可以找一个代理【中介】 我们【目标对象】与中介【代理对象】不能相互转换因为是“兄弟”关系 1.2 为什么需要代理【程序中】 需求实现【加减乘除】计算器类 在加减乘除方法中添加日志功能【在计算之前记录日志。在计算之后显示结果。】 实现后发现问题如下 日志代码比较分散可以提取日志类日志代码比较混乱日志代码【非核心业务代码】与加减乘除方法【核心业务代码】书写一处 总结在核心业务代码中需要添加日志功能但不期望在核心业务代码中书写日志代码。 此时使用代理模式解决问题【先将日志代码横向提取到日志类中再动态织入回到业务代码中】 1.3 手动实现动态代理环境搭建 实现方式 基于接口实现动态代理 JDK动态代理基于继承实现动态代理 Cglib、Javassist动态代理 实现动态代理关键步骤 一个类Proxy 概述Proxy代理类的基类【类似Object】作用newProxyInstance()创建代理对象 一个接口InvocationHandler 概述实现【动态织入效果】关键接口作用invoke()执行invoke()实现动态织入效果 1.4 手动实现动态代理关键步骤 注意代理对象与实现类【目标对象】是“兄弟”关系不能相互转换 创建类【为了实现创建代理对象工具类】提供属性【目标对象实现类】提供方法【创建代理对象】提供有参构造器【避免目标对为空】 package com.atguigu.beforeaop;import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy;/*** author Chunsheng Zhang 尚硅谷* create 2022/3/28 16:22*/ public class MyProxy {/*** 目标对象【目标客户】*/private Object target;public MyProxy(Object target){this.target target;}/*** 获取目标对象的代理对象* return*/public Object getProxyObject(){Object proxyObj null;/**类加载器【ClassLoader loader】,目标对象类加载器目标对象实现接口Class?[] interfaces,目标对象实现所有接口InvocationHandler h*/ClassLoader classLoader target.getClass().getClassLoader();Class?[] interfaces target.getClass().getInterfaces();//创建代理对象proxyObj Proxy.newProxyInstance(classLoader, interfaces, new InvocationHandler() {//执行invoke()实现动态织入效果Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//获取方法名【目标对象】String methodName method.getName();//执行目标方法之前添加日志MyLogging.beforeMethod(methodName,args);//触发目标对象目标方法Object rs method.invoke(target, args);//执行目标方法之后添加日志MyLogging.afterMethod(methodName,rs);return rs;}});return proxyObj;}// class invocationImpl implements InvocationHandler{ // }}Testpublic void testBeforeAop(){// int add calc.add(1, 2); // System.out.println(add add);//目标对象Calc calc new CalcImpl();//代理工具类MyProxy myProxy new MyProxy(calc);//获取代理对象Calc calcProxy (Calc)myProxy.getProxyObject();//测试 // int add calcProxy.add(1, 2);int div calcProxy.div(2, 1);}
http://www.hkea.cn/news/14591880/

相关文章:

  • 免费流量网站推广男女做污的网站
  • html5 metro风格网站苏州网站设计都选苏州聚尚网络
  • 做淘客网站怎么建要购买数据库吗徐州网站建设 徐州网站推广
  • 楚雄 网站建设网站开发需要大学吗
  • 数据库网站建设智慧团建登录
  • 济南百度整站seo推广西地那非片有延时效果吗
  • 镇江网站搭建常州网站备案
  • 一元抢宝网站开发阜新市建设学校管方网站
  • 凡科网免费建站官网石家庄建设局网站怎么打不开
  • 公众号同步到dede网站inovation wordpress
  • 沧县做网站价格长沙网红美食
  • 龙岩网站建设百度一下就知道
  • 网站图片快速加载正规建网站企业
  • 商会网站怎么做美间在线设计平台
  • 网页设计导航网站建设优化开发公司排名
  • 上海网站开发服务商wordpress模板 免费下载
  • 面试学校网站开发网站制作一般收费
  • 泰州网站关键词优化软件咨询温州机械网站建设
  • 外贸中间体做哪个网站好项目推广方式有哪些
  • 阿里云建设个人网站自动生成网站
  • win2003搭建php网站企业网站建设三网合一
  • 福清市建设局监督站网站dede网站seo
  • 佛山响应式网站设计网页视频怎么下载到电脑
  • 高端网站改版网站备案通管局
  • 做网站应聘平台上海电子商务网站开发
  • 用vs2010做网站应用程序脱机建设银行E路航如何自动进入网站
  • 虎牙网页游戏大厅淄博网站排名优化
  • 网站链接结构怎么修改网站的域名
  • dede网站名称海城整站优化
  • 越秀手机网站建设最好的app开发公司