博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSM-Spring-08:Spring的静态代理初窥案例
阅读量:5023 次
发布时间:2019-06-12

本文共 1589 字,大约阅读时间需要 5 分钟。

静态代理

  java的设计模式的代理模式,就是静态代理

  写在前面的话,静态代理的优点和缺点

    优点:可以在不改变一个类的方法下,对这个类的方法进行增强

    缺点:静态代理需要创建物理文件,在想实现多个静态代理的操作,就需要好多的物理文件,不太优良

 

实现案例:

  Subject接口:抽象主题的接口,有一个方法

 

package cn.dawn.day08proxy;/** * Created by Dawn on 2018/3/6. */public interface Subject {    public void request();}

 

  RealSubject类:真实主题的类,实现上面的Subject接口,实现他的方法

 

package cn.dawn.day08proxy;/** * Created by Dawn on 2018/3/6. */public class RealSubject implements Subject {    public void request() {        System.out.println("request本身——————————————————————————————-");    }}

 

  ProxySubject类:代理主题的类,同样实现Subject接口,里面有个Subject的接口的实例对象,他的get/set方法,还有新的方法,对真实主题进行静态的增强

 

package cn.dawn.day08proxy;/** * Created by Dawn on 2018/3/6. */public class ProxySubject implements Subject {    Subject subject;    public void request() {        System.out.println("before");        subject.request();        System.out.println("after");    }    public Subject getSubject() {        return subject;    }    public void setSubject(Subject subject) {        this.subject = subject;    }}

 

  单测方法:

 

package cn.dawn.day08proxy;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * Created by Dawn on 2018/3/3. */public class test20180306 {    @Test    /*di注解注入*/    public void t01(){        Subject realSubject=new RealSubject();        ProxySubject proxySubject=new ProxySubject();        proxySubject.setSubject(realSubject);        proxySubject.request();        //realSubject.request();    }}

转载于:https://www.cnblogs.com/gadl/p/8588890.html

你可能感兴趣的文章
IE阻止个别AC插件的原因及解决办法
查看>>
网络编程原始套接字
查看>>
Centos下源码安装git
查看>>
gulp-rev-append md5版本号
查看>>
IO流之File类
查看>>
sql 基础语句
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
oracle直接读写ms sqlserver数据库(二)配置透明网关
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>
大话设计模式随笔四
查看>>
关于 ORA-01439: 要更改数据类型, 则要修改的列必须为空
查看>>
Docker 生态
查看>>
Spring整合jdbc-jdbc模板api详解
查看>>
Tomcat:Can't load AMD 64-bit .dll on a IA 32 platform(问题记录)
查看>>
JAVA 集合JGL
查看>>
Python创建删除文件
查看>>
Android中创建与几种解析xml的方法
查看>>
java 网络编程(三)---TCP的基础级示例
查看>>
springboot复习小结
查看>>