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();
        }

    结果

  • 相关阅读:
    函数的逻辑读成零
    SQL逻辑读变成零
    体系结构中共享池研究
    执行计划基础 动态采样
    执行计划基础 统计信息
    识别低效率的SQL语句
    oracle 知识
    XPATH 带命名空间数据的读取
    ACTIVITI 研究代码 之 模版模式
    ACTIVITI 源码研究之命令模式执行
  • 原文地址:https://www.cnblogs.com/xuchangqi1/p/8522170.html
Copyright © 2011-2022 走看看