diff --git a/README.md b/README.md
index d25bdca..edd985d 100644
--- a/README.md
+++ b/README.md
@@ -225,6 +225,7 @@
- [AdvisorChainFactory](spring-aop/spring-aop-advisorChainFactory/README.md):创建Advisor链的工厂接口。
- [AdvisorAdapterRegistry](spring-aop/spring-aop-advisorAdapterRegistry/README.md):适配各种Advice到AOP拦截器,注册和管理Advisor适配器。
- [AopContext](spring-aop/spring-aop-aopContext/README.md):获取Spring AOP代理对象的工具。
+ - [ExposeInvocationInterceptor](spring-aop/spring-aop-exposeInvocationInterceptor/README.md):暴露Spring AOP方法调用上下文的拦截器。
+ Spring AOT
diff --git a/spring-aop/pom.xml b/spring-aop/pom.xml
index cf95a52..25433d8 100644
--- a/spring-aop/pom.xml
+++ b/spring-aop/pom.xml
@@ -38,6 +38,7 @@
spring-aop-advised
spring-aop-aopContext
spring-aop-targetSourceCreator
+ spring-aop-exposeInvocationInterceptor
4.0.0
diff --git a/spring-aop/spring-aop-aopContext/README.md b/spring-aop/spring-aop-aopContext/README.md
index eb44ae9..3459a32 100644
--- a/spring-aop/spring-aop-aopContext/README.md
+++ b/spring-aop/spring-aop-aopContext/README.md
@@ -4,11 +4,12 @@
- [一、基本信息](#一基本信息)
- [二、基本描述](#二基本描述)
- [三、主要功能](#三主要功能)
- - [四、最佳实践](#四最佳实践)
- - [五、源码分析](#五源码分析)
+ - [四、类源码](#四类源码)
+ - [五、最佳实践](#五最佳实践)
+ - [六、源码分析](#六源码分析)
- [JDK动态代理拦截器](#jdk动态代理拦截器)
- [CGLIB动态代理拦截器](#cglib动态代理拦截器)
- - [六、常见问题](#六常见问题)
+ - [七、常见问题](#七常见问题)
### 一、基本信息
@@ -32,7 +33,78 @@
+ 在一些特定场景下,可能需要在不同的方法间传递AOP代理对象,而不是直接调用`this`。`AopContext`类提供了一种解决方案,可以在方法调用间传递AOP代理对象。
-### 四、最佳实践
+### 四、类源码
+
+`AopContext`类提供了用于获取当前AOP调用信息的静态方法集合。通过`currentProxy()`方法可以获取当前AOP代理对象,前提是AOP框架已配置为暴露代理对象。这对目标对象或通知进行增强调用,以及查找通知配置非常有用。然而,由于性能成本较高,Spring的AOP框架默认不会暴露代理对象。
+
+```java
+/**
+ * 用于获取当前AOP调用信息的静态方法集合。
+ *
+ *
如果AOP框架配置为暴露当前代理对象(非默认情况),则可使用 {@code currentProxy()} 方法获取正在使用的AOP代理对象。
+ * 目标对象或通知可以使用此方法进行增强调用,类似于EJB中的 {@code getEJBObject()}。也可用于查找通知配置。
+ *
+ *
Spring的AOP框架默认不暴露代理对象,因为这样做会带来性能开销。
+ *
+ *
此类中的功能可被目标对象使用,以获取调用中的资源。然而,当存在合理替代方案时,不应使用此方法,因为这会使应用程序代码依赖于AOP下的使用和Spring AOP框架。
+ *
+ * @author Rod Johnson
+ * @author Juergen Hoeller
+ * @since 13.03.2003
+ */
+public final class AopContext {
+
+ /**
+ * 线程本地变量,用于保存与该线程关联的AOP代理对象。
+ * 除非控制代理配置的“exposeProxy”属性被设置为“true”,否则将包含{@code null}。
+ * @see ProxyConfig#setExposeProxy
+ */
+ private static final ThreadLocal