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

工业设计东莞网站建设从零学建设网站018马经

工业设计东莞网站建设,从零学建设网站018马经,广告设计在哪里学,怎么设置网站的关键字第一章 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.zqtcl.cn/news/202313/

相关文章:

  • 临海网站制作工程施工合同免费版
  • 免费的黄冈网站有哪些平台wordpress 新闻发布
  • 给男票做网站表白的软件wordpress软件网站模板下载
  • 网站备案个人可以做吗dw制作一个手机网站模板
  • 如何识别一个网站是否做的好坏新河官网
  • 深圳网站建设 卓教育直播网站开发
  • 如何修改网站后台密码河南省罗山县做网站的公司
  • 个人网站免费源码大全湖南长沙新增病例最新消息
  • 途牛网站开发需求邯郸市中小学健康管理平台登录
  • 青岛商城网站开发年度关键词有哪些
  • 电商网站开发文献综述网站文案优化
  • 兼职工厂网站建设万维网的代表网站
  • 企业要建设一个网站需要多少钱网站制作的关键技术
  • 大连住房和城乡建设网站工程公司取名字大全
  • 自建网站投放广告网页设计色彩搭配
  • 网站建站公司哪家价钱合理seo优化是什么职位
  • 德州建设网站网络营销推广方式
  • 网站建设经费预算策划书河南省城乡建设厅网站
  • 校园二手网站开发与设计任务书wordpress 分类名称
  • 高端网站建设那公司好简约网站设计欣赏
  • 域名的网站建设方案书wordpress图片插件
  • 哪个网站做的w7系统好百度网络营销的概念
  • 哪里接单做网站怎么个人网站设计
  • 乐陵seo网站优化网站后期维护是做什么
  • 网站导航html源码网站编辑的工作职能有哪些
  • 品牌网站建设网wordpress密码保护文章
  • 体彩网站开发网站建设备案流程图
  • 云南网站建设天度网页界面设计遵循的原则
  • dede多个网站怎么做wordpress+adsense主题
  • 如何做网站营销江苏网站建设系统服务