当前位置: 首页 > news >正文

Spring 中的 ProxyFactory 创建代理对象

一、jdk 动态代理 和 cglib动态代理 简单介绍 

        1.jdk动态代理

public interface AService {public String serviceA(String param);public String serviceAA(String param);
}
public interface BService {public String serviceB(String param);public String serviceBB(String param);
}
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;public class JdkCustomInvocationHandler implements InvocationHandler {@Overridepublic Object invoke(Object o, Method method, Object[] objects) throws Throwable {if(method.equals(AService.class.getMethod("serviceA" , String.class))){// 在这里可以写 当我们把代理当作 AService 的实现子类,调用 serviceA 方法时// 我们要执行的代码,这里我们姑且就简单打印,并返回一个值System.out.println("JdkCustomInvocationHandler 开始处理 com.fll.start.dynamic_proxy.jdk.AService.serviceA 方法");return "JdkCustomInvocationHandler 处理 com.fll.start.dynamic_proxy.jdk.BService.serviceA 的结果";}else if(method.equals(BService.class.getMethod("serviceB", String.class))){// 在这里可以写 当我们把代理当作 BService 的实现子类,调用 serviceB 方法时// 我们要执行的代码,这里我们姑且就简单打印,并返回一个值System.out.println("JdkCustomInvocationHandler 开始处理 com.fll.start.dynamic_proxy.jdk.BService.serviceB 方法");return "JdkCustomInvocationHandler 处理 com.fll.start.dynamic_proxy.jdk.BService.serviceB 的结果";}else {return "暂时对该方法没有处理逻辑";}}
}

        2.cglib动态代理

        

二、Spring中的 三个重要的概念 Advice  Advisor  Advised

        1.Advice

        2.Advisor

        3.Advised

三、ProxyFactory 类的继承结构,以及每一层中实现的功能

四、AopProxyFactory的默认实现类DefaultAopProxyFactory的介绍

五、Spring 中的 InvocationHandler --- JdkDynamicAopProxy

六、AdvisedSupport 中 getInterceptorsAndDynamicInterceptionAdvice 详解

七、AdvisorChainFactory 的默认实现类 DefaultAdvisorChainFactory

八、AdvisorAdapterRegistry 的 默认实现类 DefaultAdvisorAdapterRegistry

九、简单介绍 Interceptor

十、详细介绍 MethodInterceptor 

十一、如何通过 MethodInterceptor 几个实现类实现 Advice 的顺序调用

AdvisorChainFactory 的默认实现类 DefaultAdvisorChainFactory

http://www.mrgr.cn/news/77865.html

相关文章:

  • 4、MAC地址、ARP协议解析
  • 【iOS】bug调试技巧
  • [RabbitMQ] 重试机制+TTL+死信队列
  • 医学图像语义分割:前列腺肿瘤、颅脑肿瘤、腹部多脏器 MRI、肝脏 CT、3D肝脏、心室
  • 力扣 LeetCode 513. 找树左下角的值(Day8:二叉树)
  • 科技赋能健康:多商户Java版商城系统引领亚健康服务数字化变革
  • 学习Servlet (Servlet的实现方式1)
  • 英语写作中“联系、关联”associate correlate 及associated的用法
  • 28.UE5游戏框架,事件分发器,蓝图接口
  • 17. 指针类型和步长概念问题
  • Node相关教程
  • css效果
  • vue面试题——描述一下vue
  • Linux高阶——1123—
  • 【阵列信号处理】相干信号和非相干信号生成
  • docker基础命令
  • 【C++知识总结2】C++里面的小配角cout和cin
  • #Verilog HDL# Verilog中的generate用法集锦
  • 【线程】Java多线程编程
  • 瑞佑液晶控制芯片RA6807系列介绍 (三)软件代码详解 Part.10(让PNG图片动起来)完结篇
  • MySQL学习/复习10视图/用户/权限/语言连接数据库
  • Vue实训---3-element plus的使用与布局
  • 深入解读:2023华为流程体系及落地实施
  • 【Bluedroid】A2DP SINK播放流程源码分析
  • BERT解析
  • 鸿蒙进阶-状态管理之@Prop@Link