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

CGLIB代理cglib动态代理

2天前CN2资讯

cglib和jdk代理对应,但是要实现jdk代理,其代理对象必须实现一个或多个接口,而cglib则不用实现接口,适用于没有实现接口的类的情况

cglib需要实现MethodInterceptor接口和实现intercept()方法

例如

需要增强的目标类UserDao 

public class UserDao {
public void addUser(){
System.out.println("添加用户");
}
public void deleteUser(){
System.out.println("删除用户");
}
}

切面类 //切面类,用于增强UserDao 
public class Myaspect {
public void addBefore(){
System.out.println("添加之前的检查");
}
public void deleteBefore(){
System.out.println("删除之前的检查");
}

}
代理类CglibProxy
public class CglibProxy implements MethodInterceptor {

public Object createProxy(Object target) {
//动态类对象
Enhancer enhancer = new Enhancer();
//确定需要增强的类,设置成它的父类
enhancer.setSuperclass(target.getClass());
//添加回调函数
enhancer.setCallback(this);
//返回创建的代理类
return enhancer.create();
}

@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
//创建切面类对象进行增强
Myaspect myaspect = new Myaspect();
myaspect.addBefore();
//执行目标方法
Object obj = methodProxy.invokeSuper(o, objects);
myaspect.deleteBefore();
return obj;
}
}

测试 public class CglibProxyTest {
public static void main(String[] args) {
//创建代理对象
CglibProxy cglibProxy = new CglibProxy();
//new userDao()表示目标对象
//获取增强后的目标对象
UserDao userDao = (UserDao) cglibProxy.createProxy(new UserDao());
//执行方法,此时方法已经被增强了
userDao.addUser();

}
}
结果

添加之前的检查
添加用户
删除之前的检查

    你可能想看:

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

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

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

    标签: CGLIB代理
    分享给朋友:

    “CGLIB代理cglib动态代理” 的相关文章

    搬瓦工带防御:如何提升VPS安全性,抵御DDoS攻击

    搬瓦工VPS的基本介绍 搬瓦工(Bandwagon Host)作为一家知名的VPS提供商,以其稳定的网络连接和出色的性能赢得了众多用户的青睐。无论是个人网站搭建、企业应用部署,还是科学上网需求,搬瓦工VPS都能提供灵活且高效的解决方案。它的价格相对亲民,同时支持多种操作系统和自定义配置,满足了不同用...

    最便宜的域名注册平台推荐与选择技巧

    在创建一个新网站时,域名是一个不可或缺的部分。众所周知,一个好的域名能够提升品牌形象,也让用户更容易记住。选择便宜的域名注册平台,可以让我们在网站建设的开销上更加省钱。这里有几个我认为特别值得关注的平台,可能会对你有帮助。 1.1 NameCheap的优势与价格分析 让我先谈谈NameCheap。说...

    Linode Speed Test: 提升云服务性能的关键指南

    从2003年成立以来,Linode已经在云计算领域中扮演了重要角色。作为一家美国主机服务商,它的目标是为开发者提供全面而灵活的云计算解决方案。个人开发者、小型企业甚至大型企业都能在这里找到适合自用的工具。Linode不止提供基础的主机服务,还围绕开发者的需求不断迭代产品,确保用户体验越发顺畅。 同时...

    搬瓦工Plan v2:高性价比VPS套餐详解与用户指南

    搬瓦工Plan v2作为一个限量版VPS套餐,给很多用户带来了新的选择。与之前的The Plan套餐相比,Plan v2在配置与流量方面都实现了显著的提升。这款套餐不仅是一种实用的解决方案,也为不同需求的用户提供了灵活的选择。接下来,我将分享一些关于这个套餐的背景信息、主要升级点以及它适合哪些用户。...

    选择最佳香港VPS大带宽服务的全面指南,助你无忧搭建在线业务

    在如今这个信息高速发展的时代,选择适合的VPS服务显得尤为重要。特别是香港VPS大带宽服务,以其独特的优势吸引了越来越多的用户。对于想要进行国际业务、网站托管或是搭建游戏服务器的用户来说,香港VPS大带宽服务绝对是个不错的选择。 香港VPS大带宽的优势显而易见。一个显著的特点是无需备案,这意味着用户...

    服务器租用的全面指南:如何选择和管理最合适的服务器

    1. 服务器租用概述 服务器租用是许多企业和个人在建设网站或部署应用时的首选方式,指的是用户支付一定的费用来获得服务器的使用权。这样的模式让用户不需要高额的初始投资,可以随时按需租用相应配置的服务器。这在当今快速发展的数字时代尤为重要,无论是初创企业还是成熟企业,都能从中获得灵活性和成本效益。 想象...