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

西安做网站公司哪家好 应该怎么选择企业网站有什么

西安做网站公司哪家好 应该怎么选择,企业网站有什么,四川城乡建设部网站,机械外贸网站建设0、基础知识 AOP我们知道#xff0c;是在不修改源代码的情况下#xff0c;为代码添加一些新功能的技术。通过动态代理#xff0c;可以在不修改原始类代码的前提下#xff0c;对方法进行拦截和增强。 动态代理常用于在不改变原有业务逻辑的情况下#xff0c;对方法…0、基础知识 AOP我们知道是在不修改源代码的情况下为代码添加一些新功能的技术。通过动态代理可以在不修改原始类代码的前提下对方法进行拦截和增强。         动态代理常用于在不改变原有业务逻辑的情况下对方法的调用进行额外的处理比如日志记录、性能监控、事务管理等。它实现了面向切面编程AOP的核心概念。 1、动态代理   AOP其实就是先通过“一些办法”拿到“代理对象”再对这个代理对象添加新方法。 动态代理的两种办法 1.1 JDK代理基于接口的动态代理技术。 方法通过目标接口创建接口实现类动态地在运行时内存里生成代理对象其拥有目标对象的原方法实现最后通过代理对象来增加新功能。 看文字有些抽象现在手动用代码实现一个JDK代理的AOP技术根据jdk1.8手册找到Proxy类通过newInstance方法实现动态代理对象的创建。 “Proxy提供了创建动态代理类和实例的静态方法它也是由这些方法创建的所有动态代理类的超类。” 1准备接口和实现类 //接口 public interface UserDao {public int add(int a,int b);public String update(String id); }//实现类 public class UserDaoImpl implements UserDao{Overridepublic int add(int a, int b) {System.out.println(add.......);return ab;}Overridepublic String update(String id) {System.out.println(update);return id;} } 2创建UserDao的代理对象调用增强方法 需要注意InvocationHandler接口里有invoke方法必须实现而调用代理对象的任何方法实质都是在执行invoke方法。            public class JDKProxy {public static void main(String[] args) { /** newProxyInstance的三个内容类加载器、要实现的接口的class、 和InvocationHandler这是个接口里面写的增强类的具体逻辑 */Class[] interfaces {UserDao.class};UserDaoImpl userDao new UserDaoImpl();UserDao dao (UserDao) Proxy.newProxyInstance(JDKProxy.class.getClassLoader(),interfaces,new UserDaoProxy(userDao));//生成的“dao”就是代理对象实例。//也可以直接用匿名内部类的方法来写(new InvocationHandler)int add dao.add(1, 2);//使用代理对象dao调用add的时候无需改变add源码却增强了功能。System.out.println(add add);} }//创建代理对象代码 class UserDaoProxy implements InvocationHandler {//把创建的是谁的代理对象把谁传递过来//有参数构造传递private Object obj;//要创建obj的代理对象public UserDaoProxy(Object obj) {this.obj obj;}//增强的逻辑InvocationHandler接口里有invoke方法必须实现 //调用代理对象的任何方法实质都是在执行invoke方法。Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {//方法之前增强System.out.println(方法之前执行....method.getName() :传递的参数... Arrays.toString(args));//被增强的方法执行原模块功能不变Object res method.invoke(obj, args);//res3//方法之后增强System.out.println(方法之后执行....obj);return res;} } 但是有个遗留问题invoke函数究竟是如何被调用的往下看了源码也没有分析出来个人推测是这样的 因为传入的obj其实就是要动态代理的原对象但我们不知道具体执行什么方法此时dao还未调用add方法。但调用了以后invoke方法却能够自动调用、增强方法内部应该是采用反射的方法拿到“add”这个方法名称通过getMethod反射出方法的类对象再用method.invoke(具体对象)来实现方法的调用从而调用add并完成前后的增强。 1.2 cglib基于父类的动态代理技术。 方法为目标对象动态地生成子对象其具有了父类的方法实际不是继承         实现类似此处不做代码示例。
http://www.hkea.cn/news/14305687/

相关文章:

  • 本科学院网站建设方案深圳网站建设企业
  • 一个主机建多少个网站酒店网站建设背景分析
  • 唐山网站建设400多少钱最新军事新闻热点事件
  • 网站专题策划中国电信六大外包公司
  • 一家专门做原产地的网站做网页要钱吗
  • html怎么做网站设计怎样做免费网站
  • 深圳营销网站建设模板wordpress 短网址插件
  • 外贸网站建设 义乌做网站效果图是用ps还是ai
  • 无域名网站 能否被百度网站建设需要服务器么
  • 千海网站建设 小程序做美食软件视频网站
  • 百度微信网站顺企网下载安装手机版
  • 如何优化网站内部链接电商如何推广
  • wdcp 网站建设wordpress数据写入
  • 亿赐客网站怎么样wap购物网站源码
  • 音乐网站如何做下载优化大师安装桌面
  • 什么是 网站收录施工企业会计王玉红课后答案
  • 广州建网站兴田德润可信建设医院在哪里
  • 海口网站建设联系方式企业文化培训都有哪些内容
  • 家居网站建设 百度文库家装装饰设计
  • c 开发微网站开发网页设计制作作品
  • asp怎么做网站广州网站建设开发设计
  • 网站上的招牌图怎么做小程序源码php
  • 做网站违反广告法手机代理ip免费网址
  • 松江品划网站建设推广优化品牌seo关键词
  • 哈尔滨网站建设公司简单的wordpress模板下载
  • 项目定制开发网站网站开发职业环境分析
  • 看守所加强自身网站建设工作总结莘县做网站
  • 做网站还要买服务器吗旅游网站开发的背景及意义
  • 门户网站安全建设wordpress调取多个分类文章
  • 重庆建设医院官方网站视频直播软件有哪些