aop方式向okhttp完成网络的监听拦截_「Byte Buddy」20行代码实现AOP

本文介绍了如何使用Byte Buddy这个字节码生成库,在不依赖Spring等框架的情况下,仅通过20行代码实现AOP网络监听拦截。通过创建注解、定义拦截逻辑,展示了动态增强Java类的能力,实现在方法调用前后打印日志的功能。
摘要由CSDN通过智能技术生成

52ee96af7117df2fe196512c455d8d70.png

写Java的同学自然对AOP——Aspect-Oriented Programming,面向切面编程——不会感到陌生。说到AOP,大家的第一个反应应该是面试的考点,以及那些怎么学也学不会的Spring AOP配置。

今天,我们就尝试用最简单的方式完成一个AOP,项目放在这里:

  • 整个项目只有一个50行的Java文件,其中主要的AOP功能只有20行。
  • pom.xml里面只有一个第三方依赖库,什么Spring,什么AspectJ,什么都没有。

其中唯一的那个依赖库就是我们今天故事的主角Byte Buddy,一个Java世界中著名的运行时字节码生成库。说它著名,是因为它几乎是现代JVM运行时字节码增强的唯一选择。你可能没听说过它,但是你一定用过它:Spring、Mockito、Jackson等大名鼎鼎的项目底层都用到了Byte Buddy。这几乎可以算是现代Java应用的基石了。

但是因为它离我们日常工作的领域相距太远,绝大多数人应该都没听说过——在知乎上搜索一下Byte Buddy,结果一只手就能数的过来。毕竟,谁没事干改字节码玩儿呢?

今天我们就向大家展示这个鲜为人知的字节码增强库Byte Buddy的强大能力。

首先,我们有一个Log注解:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值