当前位置:首页 > CN2资讯 > 正文内容

AOP代理模式

3天前CN2资讯

代理模式:
1.静态代理
原理:创建一个代理类实现目标类的接口,在代理类中包含目标类的对象

案例:

1)需要创建一个接口

public interface IUserService {

public void insert();
}

2)创建目标类来实现接口

import com.test.staticproxy.IUserService;

public class UserService implements IUserService {

@Override
public void insert() {


}
}

3)创建代理类

public class UserProxy implements IUserService {

//静态代理
//缺点 代理的是固定的对象
private IUserService userService=new UserService();

@Override
public void insert() {

System.out.println("代理给代理对象加的内容");
userService.insert();
System.out.println("代理给代理对象加的内容");
}
}

2.动态代理
静态代理代理的是固定对象,可以用动态代理实现 代理不同的对象

2.1 jdk自带的代理方式
原理:通过jdk中自带的Proxy类创建一个代理对象,代理类实现了目标类的接口

前提:目标对象一定要有接口

1)需要创建一个接口

public interface IUserService {

public void insert();
}

2)创建目标类来实现接口

import com.test.staticproxy.IUserService;

public class UserService implements IUserService {

@Override
public void insert() {

}
}

创建一个代理类生成器

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class Handler implements InvocationHandler {

//存放目标对象
Object subject;

public Handler(Object subject)
{
this.subject=subject;
}

// 用jdk写好的Proxy类生成一个代理对象
public static Object bind(Object subject)
{
//创建一个类实现目标类的接口,返回这个类的对象
return Proxy.newProxyInstance(Handler.class.getClassLoader(),
subject.getClass().getInterfaces(),
new Handler(subject));

}

//通过反射的方式 实现 调用代理对象的方法时 实际会去调用目标对象中的方法,并且在调用目标对象方法前后加上自定义内容
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

System.out.print("打印日志");

//调用原目标对象中的方法
Object object= method.invoke(subject,args);

return object;
}
}

使用

@Test
public void fun()
{
//只能用目标对象的接口接收 不能用目标对象接收
IStudentService studentService=(IStudentService) Handler.bind(new StudentService());

studentService.add();
}
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24279.html

    分享给朋友:

    “AOP代理模式” 的相关文章

    解锁高效跨境访问:BandwagonCN2让世界触手可及

    在全球化的今天,跨境访问已经成为许多人生活与工作的重要组成部分。无论是商务人士访问海外资源,还是留学生寻求教育资源,亦或是游戏玩家追求更流畅的体验,高效的网络连接都变得不可或缺。传统网络环境下,跨境访问常常面临延迟高、不稳定甚至完全无法访问的问题。在这背景下,BandwagonCN2应运而生,为用户...

    跑步的全面指南:基础知识、路线选择与心理技巧

    跑步的基础知识 跑步,这项简单又有效的运动,拥有着悠久的历史和丰富的文化背景。追溯到古代,跑步不仅是人类生存的必要技能,更是一项重要的竞技活动。历史上,古希腊的奥林匹克运动会中,长跑是最受欢迎的项目之一。而在中国,长跑也早在古代就已经成为士兵训练和民间竞技的一部分。随着时代发展,跑步逐渐演变为一种大...

    elkupi - 提供灵活抗投诉主机服务的领先选择

    在我探寻各种主机服务商时,elkupi是个让我印象深刻的名字。这家公司在业内存在已久,专注于提供一些特殊主机服务,尤其是在欧美国家法律限制较多的情况下,elkupi的优势尤为明显。它不仅能容纳一些法律上不太允许的内容,在抗投诉方面也表现得非常出色,几乎可以忽略不计。这一特点无疑吸引了很多需要这类服务...

    日本节点的重要性与旅行体验优化指南

    日本节点的定义与重要性 在数字化飞速发展的今天,网络成为了沟通和信息流通的主要渠道。这里提到的“节点”,其实是指网络中数据传输的关键环节,可以理解为互联网的一个重要接点。每一个节点都承担着流量的传输与分发,确保数据能够迅速而高效地在全球范围内流动。想象一下,网络就像一张巨大的蜘蛛网,各个节点犹如网中...

    香港云服务器推荐:选择最佳服务提供商的全面指南

    什么是云服务器 在数字化时代,云服务器成为了许多企业和个人用户的重要资源。简单来说,云服务器是一种虚拟服务器,通过互联网提供灵活、可扩展的计算资源。用户无需拥有实体服务器,只需根据自己的需求选择相应的云服务,并进行配置管理。这样的好处在于,我可以根据项目的不同阶段进行资源的调整,而无需担心硬件的维护...

    VPS测速:优化服务器性能与用户体验的关键工具

    当谈到网络服务时,VPS(虚拟专用服务器)是一个绕不开的话题。它为用户提供了一个灵活且高效的网络环境,通过虚拟化技术将一台物理服务器分割成多个独立的虚拟服务器。用户可以拥有自己的操作系统、存储空间和带宽,这使得VPS成为了许多企业和个人的理想选择。 通过使用VPS,用户能够执行各种任务,比如搭建网站...