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

深圳推广公司网站建设书模板使用的电脑做网站的服务器

深圳推广公司网站建设书模板,使用的电脑做网站的服务器,全网拓客app,有没有做网站的教程第一章 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.tj-hxxt.cn/news/231751.html

相关文章:

  • wordpress微信网站网站建设shzanen
  • 好网站的标准网页设计与制作课程性质
  • 东莞市义务教育阶段统一招生平台重庆seo关键词优化服务
  • 网站制定公司广告推广策划方案
  • 西安做网站公司云速wordpress 主题开心版
  • 专业网站设计的公司wordpress在线转pdf
  • 网站建设盐城旧金山网站建设
  • 兴仁市建设局网站wordpress主题 欣赏
  • 开发一个手机系统有多难济南正规企业站seo
  • vs网站开发源码网站设计作业
  • 关于手机的网站有哪些内容石家庄专业网站营销
  • 最新免费网站源码昆山做网站的公司有哪些
  • 城乡建设网官方网站wordpress 文章内目录
  • 怎么描述网站主页做的好wordpress前台登录主题
  • 大冶市建设局网站腾讯广告
  • 西安市阎良区建设局网站产品推广运营的公司
  • 网站建设的中期检查表网站建设必须要服务器吗
  • 有哪些企业建设网站潮南最新消息今晚
  • 易无忧建站淘宝店铺运营推广
  • 网站建设制作周期wordpress后台编辑框 自定义按钮
  • 网站备案是怎么回事小米的企业网站建设思路
  • 蓝色风格的网站html5网站开发环境的搭建
  • 如何做网站拉动条网站开发方向学啥
  • 顶尖手机网站建设网站网页设计多少钱
  • 放心的网站设计制作网站正在建设html
  • 建设网站能赚钱电脑网站转换手机网站怎么做
  • 衡水做网站建设公司上海远丰电商网站建设公司怎么样
  • 网站设计网络推广杭州建设网双标化工地2022年
  • 业务推广网站wordpress页面修改
  • 学校网站源码html电子商务网站的后台管理系统