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

cgli动态代理动态代理

3天前CN2资讯
1 /**
2 * Cglib 动态代理
3 * 1.引入cglib-nodep-2.2.jar 依赖
4 * 2.实现MethodInterceptor 接口
5 * 3.创建一个代理对象
6 * 4.完成 intercept方法
7 */
8 public class CgilbProxy implements MethodInterceptor {
9 /**
10 * 返回一个代理对象
11 * @param classes
12 * @return
13 */
14 public Object getInstance(Class<?> classes){
15 // 通过Enhancer创建一个代理类
16 Enhancer enhancer = new Enhancer();
17 enhancer.setSuperclass(classes);
18 enhancer.setCallback(this);
19
20 //创建一个代理对象
21 return enhancer.create();
22 }
23 /**
24 * 返回一个代理对象
25 * @param o
26 * @param method
27 * @param objects
28 * @param methodProxy
29 * @return
30 * @throws Throwable
31 */
32 @Override
33 public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
34 //proxy 是上个方法的代理对象
35 //method 调用的方法
36 //args 返回参数
37 System.out.println("代理的方法"+ method.getName());
38 Object result = methodProxy.invokeSuper(o, objects);
39
40 return result;
41 }
42 }

 

//卖车
public interface sellCar {
void sellcar();

}//经理卖车
public class Manage implements sellCar {
@Override
public void sellcar() {
System.out.println("卖车");
}
}public class Client {测试// 创建代理对象 代理接口
public static void main(String[] args) {
CgilbProxy cgilbProxy = new CgilbProxy();
sellCar instance = (sellCar) cgilbProxy.getInstance(Manage.class);
instance.sellcar();
}
}

上面是通过接口

-----------------

下面的例子是通过类

public class Manage {
public void sellcar() {
System.out.println("卖车");
}
}public static void main(String[] args) {测试
CgilbProxy cgilbProxy = new CgilbProxy();

Manage manage= (Manage) cgilbProxy.getInstance(Manage.class);
manage.sellcar();
}

 


    你可能想看:

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

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

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

    分享给朋友:

    “cgli动态代理动态代理” 的相关文章

    ZGOVPS优惠码使用指南:如何享受高性能VPS服务的优惠

    ZGOVPS是一家在VPS服务领域备受瞩目的品牌。作为一个提供高性能虚拟专用服务器的商家,它在业内以性价比高、网络稳定和良好口碑而受到广泛欢迎。我在使用ZGOVPS的过程中,深刻感受到了它对客户需求的敏锐把握和优质服务的承诺。 从公司的背景来看,ZGOVPS专注于为全球用户提供专业的VPS解决方案,...

    inet.ws纽约:高性能VPS服务与折扣优惠码解析

    inet.ws是一家新兴的互联网服务提供商,成立于2020年。尽管公司年轻,但它凭借创新的VPS服务迅速在市场上占据了一席之地。最让人称道的是,inet.ws致力于为用户提供稳定和高效的云服务器体验,尤其是在他们的纽约数据中心,这里被认为是其最重要的运营点之一。 在发展的过程中,inet.ws不断完...

    Ubuntu 多人远程办公的安装与配置指南

    安装和配置远程桌面软件 在远程办公和团队协作日益成为常态的今天,合理配置远程桌面软件显得尤为重要。在Ubuntu的环境下,安装和配置xrdp和vncviewer等工具,可以让多个用户方便地进行远程访问,提高工作效率。下面,我将一步步带你进行相关的软件安装和配置。 1. 安装xrdp 首先,我们要安装...

    Oracle Cloud 教学:从免费资源到项目实践的全方位指南

    在这个数字化的时代,云计算成为了技术发展的重要方向,而Oracle Cloud则为学习者提供了丰富的教学资源,涵盖从初学者到高级用户的各个层次。通过这些资源,我们可以轻松地开始云计算的学习之旅,更加熟悉这个领域的核心知识和技能。在Oracle Cloud的学习中,我发现了几个特别有帮助的项目,接下来...

    如何使用restorecon命令恢复Linux系统文件的安全上下文

    在学习Linux或进行系统管理时,可能会听到“restorecon”这个词。简单来说,restorecon是一个用于恢复文件和目录的安全上下文的命令。它的核心作用在于确保系统文件符合安全政策,帮助保持系统的安全性。想象一下,当我们对系统文件进行更改或更新时,这些文件的安全设置可能会被意外改变,这时r...

    如何高效利用 gigsgigscloud 找到优质自由职业者

    什么是 gigsgigscloud? 在我开始使用 gigsgigscloud 之前,我还是对这个平台有些陌生。gigsgigscloud 是一个连接企业和自由职业者的在线平台。它让各类项目得以顺利进行,无论是短期的临时工作还是长期的合作项目。用户可以在这里找到合适的自由职业者,或者作为自由职业者展...