spring aop学习5:jdk静态代理

本文介绍了一种基于接口的静态代理模式实现方法。通过定义接口InterfaceObject,并创建实现该接口的目标对象TargetObject和代理对象ProxyObject,展示了如何在调用目标方法前后添加额外的操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:基于接口的静态代理
这里写图片描述
1.分层
User(使用者)——Proxy(代理对象)——Target(目标对象)

二.上代码
1.基于接口的代理
◆接口InterfaceObject.java

package com.tiglle.aop.interfaces.proxy;
//基于接口代理的接口(目标对象和代理对象都要实现)
public interface InterfaceObject {

    //目标对象和代理对象都要实现的方法
    public void common();

    public void common2();
}

◆目标对象TargetObject.java

package com.tiglle.aop.interfaces.proxy;
//目标对象
public class TargetObject implements InterfaceObject{

    //处理真正的逻辑,不对外暴露此方法
    @Override
    public void common() {
        System.out.println("目标对象的执行");
    }

    @Override
    public void common2() {
        System.out.println("目标对象的执行");
    }


}

◆代理对象ProxyObject.java

package com.tiglle.aop.interfaces.proxy;
//代理对象
public class ProxyObject implements InterfaceObject{

    //代理对象中包含目标对象
    private TargetObject targetObject;

    //给目标对象赋值
    public ProxyObject(TargetObject targetObject){
        this.targetObject = targetObject;
    }

    //代理对象调用目标对象的方法,自己额外做些处理
    @Override
    public void common() {
        System.out.println("代理对象开始执行:before");
        targetObject.common();
        System.out.println("代理对象结束执行:after");
    }

    @Override
    public void common2() {
        System.out.println("代理对象开始执行:before");
        targetObject.common2();
        System.out.println("代理对象结束执行:after");
    }



}

◆测试执行main方法

package com.tiglle.aop.interfaces.proxy;

public class UseExec {

    //调用(调用代理对象)
    public static void main(String[] args) {
        //向上转型
        InterfaceObject interfaces = /*代理类*/new ProxyObject(new TargetObject()/*目标类*/);
        //通过接口调用代理方法(目标方法)
        interfaces.common();
        interfaces.common2();
    }

}

结果:
代理对象开始执行:before
目标对象的执行
代理对象结束执行:after

代理对象开始执行:before
目标对象的执行
代理对象结束执行:after
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值