首页 > 其他分享 >cglib 动态代理

cglib 动态代理

时间:2022-11-15 11:46:46浏览次数:49  
标签:enhancer UserDaoImpl target Object 代理 param cglib 动态 public

  • Factory class 文件

public class ProxyFactory {
  
	private Object target;

	public ProxyFactory(Object target) {
		super();
		this.target = target;
	}

	/**
	* 得到代理对象
	*/
  	public Object getProxyFactory() {
		// 创建一个子类构造器
		Enhancer enhancer = new Enhancer();
		// 设置父类
		enhancer.setSuperclass(obj.getClass());
		// 设置回调,就是代理工厂
		enhancer.setCallback(this);
		// 在内存里生成代理对象
		return enhancer.create();
	}

	/**
	 * 拦截方法
	 * @param obj 目标对象
	 * @param method 目标对象调用的方法
	 * @param args 方法参数 
	 * @param methodProxy 方法代理
	 */
	@Override
	public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
		// 前置增强
		Object invoke = method.invoke(target, args);
		// 后置增强
		return invoke;
	}
}

  • mian 文件

public static void main(String[] args) {

	UserDaoImpl daoImpl = new UserDaoImpl();

	ProxyFactory proxyFactory = new ProxyFactory(daoImpl);

	UserDaoImpl daoImplFactory = (UserDaoImpl)proxyFactory.getProxyFactory();

	daoImplFactory.play();
		
}

标签:enhancer,UserDaoImpl,target,Object,代理,param,cglib,动态,public
From: https://www.cnblogs.com/IT-IOS-MAN/p/16891904.html

相关文章

  • 阿里云微服务引擎 MSE 9 月份产品动态
    ......
  • vue源码分析-基础的数据代理检测
    简单回顾一下这个系列的前两节,前两节花了大量的篇幅介绍了Vue的选项合并,选项合并是Vue实例初始化的开始,Vue为开发者提供了丰富的选项配置,而每个选项都严格规定了合并的策......
  • vue+iviews 动态表格(table组件)
      iviews官网上关于table的使用方法是固定表头的使用方法,如何生成动态的table网上找了好多也没有特别合适的,综合几位博主的文章经过尝试终于实现了,分享出来供大家参考......
  • 动态代理简单代码
     /***业务接口*/publicinterfaceSubject{voidcall();} /***业务接口的实现(被代理的类)*/publicclassRealSubjcetimplementsSubject{......
  • vue + el-menu 动态加载 一二级菜单 侧边栏
    1.HTML<template><divclass="container"><divclass="top">上</div><divclass="main"><!--动态加载侧边栏首先分为可折叠的......
  • 【链接库】静态库与动态库区别?
    在C语言中,函数库分为两种类型,一种是静态库(库程序是直接注入目标程序,不分彼此,库文件通常以.a结尾),另一种为动态库(库程序是在运行目标程序时加载,库文件通常以.so结尾)。文......
  • Asterisk realtime 之SIP用户动态写入mysql 数据库(2)
    提供通信服务器和客户端解决方案,包括视频电话,调度系统,会议系统等VOIP行业资讯和技术趋势请参考:www.voip123.cn接上一篇文章,SIP用户写入mysql数据库,asterisk自动查找数......
  • vue input数据动态脱敏
    页面中放两个输入框,一个绑定真实数据、一个绑定脱敏数据,仅展示脱敏数据。<van-fieldv-model="person.cardNo"v-show="false"name="证件号码"......
  • 动态参数
    <script> functioninfo(v1,...data){console.log(v1,data);} info(11);info(11,22);info(11,22,333,444,55);</script><script> functio......
  • 好用的HTTP代理如何获得
    我们每个人在做爬虫业务时,肯定都想一下子找到好用的HTTP代理,用在业务上,既省时又省力,但是很多时候都事与愿违,市面上各种繁杂的代理套餐非常多,如何能从选出既适合自己业......