zoukankan      html  css  js  c++  java
  • Spring-静态代理

    一.静态代理

        由程序员创建或工具生成代理类的源码,再编译代理类。所谓静态也就是在程序运行前就已经存在代理类的字节码文件,代理类和委托类  的关系在运行前就确定了。

    1.满足的条件和他的弊端

      1、需要知道核心类(被代理类)是哪一个类,并且有什么方法。 

      2、非核心的代码需要重复写多次,显得代码的结构臃肿,形成代码冗余。

      3、非核心类(代理类)需要实现核心类(被代理类)实现的接口,也就是他们需要实现共同的接口,但是以核心类实现的接口(被代理类)为准。

    先声明一个主题接口

    复制代码
    package SubjectText01;
    
    
    public interface Subject {
        public void request();
    }
    复制代码

    在实现类中要重写这个方法

      public class RealSubject implements Subject {
        public void request() {
          System.out.println("真实的主题对象");
        }
      }
    复制代码
     public class ProxySubject implements Subject { 
      private RealSubject realSubject;
      public RealSubject getRealSubject() {
      return realSubject;
    }
    public void setRealSubject(RealSubject realSubject) {
      this.realSubject = realSubject;
    }
     public void request() {
      System.out.println("Before====");
      realSubject.request();
      System.out.println("After====");
     }
    }
    复制代码

    在测试类中

    复制代码
      @Test public void t2(){ 
      //创建一个真实的主题对象
      RealSubject realSubject=new RealSubject();
      //创建一个代理主题对象
      ProxySubject proxy=new ProxySubject();
      //将真实对象赋值给代理对象
      proxy.setRealSubject(realSubject);
      proxy.request();
      }
  • 相关阅读:
    tomcat中配置https服务
    https无法下载
    将页面导成excel
    如何用sql语言只获得数据库当前日期,且格式为"yyyymmdd"?
    一个测试webservice服务的工具
    java中相对路径,绝对路径问题总结(转)
    Hadoop: I/O操作中的数据检查
    Java中Array.sort相关方法
    数据的I/O序列化操作
    Java中Comparable和Comparator实现对象比较
  • 原文地址:https://www.cnblogs.com/buai/p/8526813.html
Copyright © 2011-2022 走看看