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

    为什么需要静态代理

    1.目地是将业务代码与日志代码完全分离,实现松散耦合.

    2.代理对象与被代理对象必须实现同一接口,在代理对象中实现与日志记录的相关服务,并在需要的时候呼叫被代理对象,而被代理对象只保留业务代码.

    下面做个小例子

    创建Subject接口

    package cn.happy.day05;
    
    /**
     * Created by Administrator on 2018/3/6.
     */
    //抽象代理
    public interface Subject {
        public void print();
    }
    

      

    RealSubject类实现Subject

    package cn.happy.day05;
    
    /**
     * Created by Administrator on 2018/3/6.
     */
    //真实主题
    public class RealSubject implements Subject {
    
        public void print() {
            System.out.println("--------正在打印书本--------");
        }
    }
    

      

    ProxySubject类实现Subject

    package cn.happy.day05;
    
    /**
     * Created by Administrator on 2018/3/6.
     */
    //代理主题
    public class ProxySubject {
        private RealSubject realSubject=new RealSubject();
        public void print(){
            //加入检查功能   前置增强
            check();
            realSubject.print();
        }
    
        public void check(){
            System.out.println("----正在检查纸张是否合格------");
        }
    }
    

      

    书写测试类

     //静态代理
        @Test
        public void Proxy(){
            //真实主题
            RealSubject realSubject=new RealSubject();
            //代理主题
            ProxySubject proxySubject=new ProxySubject();
            proxySubject.print();
        }

    结果

  • 相关阅读:
    Thinkphp的import使用方法
    bug1
    setTimeout关于函数名做参数的问题
    ubuntu-12.04.5安装cacti笔记
    第七周作业
    第六周作业
    第五周作业
    第四周编程总结
    2019年春季学期第三周作业
    第二周编程总结
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8522170.html
Copyright © 2011-2022 走看看