
本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!
- 魔都架构师 | 全网30W技术追随者
- 大厂分布式系统/数据中台实战专家
- 主导交易系统百万级流量调优 & 车联网平台架构
- 🧠 AIGC应用开发先行者 | 区块链落地实践者
- 以技术驱动创新,我们的征途是改变世界!
- 实战干货:编程严选网
0 前言
引用某乎上著名的示意图:
1 简单理解
就像一些外来的钩子,在源代码之间钩取一些信息,当捕捉到感兴趣的事时,就拦截下来,让自己的代码执行一下,处理一下这个信息,然后再放出去继续之前的进程。
就可在不改变源码情况下,做些别的事,如监控、分析。
2 专业理解
在计算机编程中,术语“钩子”涵盖了一系列技术,这些技术通过截获在软件组件之间传递的函数调用或消息或事件来更改或增强操作系统,应用程序或其他软件组件的行为。 处理此类拦截的函数调用,事件或消息的代码称为“挂钩”。
回调这个东西在各个语言/框架中的具体形式也不同,如 Java 中 Listener 基本指回调(但也可能是 Listener 本意,易混淆),只是因为 Java 里用于构造回调的接口叫 xxxListener。
在已经可以正常运作的程序中额外添加流程控制可以实现,但不限于获取所hook流程中特定时刻的各种数据,修改数据,修改程序流程比如,在一家公司,所有采购事宜只需财务和专员协调沟通即可完成。现在公司决定下个hook, 采购事宜需总经理签字批准才可继续执行。至于总经理怎么hook操作:是随便签字,还是搞潜规则,或者有自己的想法和安排来进行新的采购事项,这就属于hook的具体实现。
本文由博客一文多发平台 OpenWrite 发布!