From 3ff03cfa5725679405cf49cd950e634f60e4c829 Mon Sep 17 00:00:00 2001
From: youthlql <1826692270@qq.com>
Date: Sun, 17 Apr 2022 13:40:30 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0Spring=E6=BA=90=E7=A0=81-?=
=?UTF-8?q?=E7=AC=AC7=E7=AB=A0-AOP=E7=9A=84=E6=89=A7=E8=A1=8C=E6=B5=81?=
=?UTF-8?q?=E7=A8=8B=E5=8E=9F=E7=90=86=E5=92=8C=E7=9B=91=E5=90=AC=E5=99=A8?=
=?UTF-8?q?=E5=8E=9F=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.nojekyll | 0
README.md | 4 +-
_coverpage.md | 13 -
_navbar.md | 4 -
.../07.第7章-AOP的执行流程原理和监听器原理.md | 1073 +++++++++++++++++
index.html | 43 -
6 files changed, 1076 insertions(+), 61 deletions(-)
delete mode 100644 .nojekyll
delete mode 100644 _coverpage.md
delete mode 100644 _navbar.md
create mode 100644 docs/spring-sourcecode-v1/07.第7章-AOP的执行流程原理和监听器原理.md
delete mode 100644 index.html
diff --git a/.nojekyll b/.nojekyll
deleted file mode 100644
index e69de29..0000000
diff --git a/README.md b/README.md
index 9a7faac..3d3530f 100644
--- a/README.md
+++ b/README.md
@@ -140,7 +140,7 @@
-## 源码【03.19更新】
+## 源码【04.17更新】
@@ -156,6 +156,8 @@
[06.第6章-AOP的后置处理器和代理对象的创建](docs/spring-sourcecode-v1/06.第6章-AOP的后置处理器和代理对象的创建.md)
+[07.第7章-AOP的执行流程原理和监听器原理](docs/spring-sourcecode-v1/07.第7章-AOP的执行流程原理和监听器原理.md)
+
# Netty
## 入门
diff --git a/_coverpage.md b/_coverpage.md
deleted file mode 100644
index 28d1275..0000000
--- a/_coverpage.md
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-JavaYouth
-
-[我的博客](https://imlql.cn/)
-[GitHub]()
-[开始阅读](#Java)
-
-
diff --git a/_navbar.md b/_navbar.md
deleted file mode 100644
index 1daa917..0000000
--- a/_navbar.md
+++ /dev/null
@@ -1,4 +0,0 @@
-- [首页](https://imlql.cn/JavaYouth/#/)
-- [Github](https://github.com/youthlql/JavaYouth)
-- [博客](https://imlql.cn/)
-- [CSDN](https://blog.csdn.net/Youth_lql)
\ No newline at end of file
diff --git a/docs/spring-sourcecode-v1/07.第7章-AOP的执行流程原理和监听器原理.md b/docs/spring-sourcecode-v1/07.第7章-AOP的执行流程原理和监听器原理.md
new file mode 100644
index 0000000..39a9dbf
--- /dev/null
+++ b/docs/spring-sourcecode-v1/07.第7章-AOP的执行流程原理和监听器原理.md
@@ -0,0 +1,1073 @@
+---
+title: Spring源码系列-第7章-AOP的执行流程原理和监听器原理
+tags:
+ - Spring源码
+categories:
+ - Spring
+ - 源码V1
+keywords: Spring,框架,spring源码
+description: AOP执行流程和监听器原理
+cover: 'https://npm.elemecdn.com/lql_static@latest/logo/spring.png'
+abbrlink: fb3552e0
+date: 2022-04-17 12:01:02
+---
+
+
+
+
+
+# 第7章-AOP的执行流程原理和监听器原理
+
+## 流程图-AOP运行流程原理
+
+
+
+## 由Aop的执行流程引出方法拦截器
+
+### 创建完代理对象之后,怎么执行的呢?
+
+断点打到这里,F7进入方法
+
+
+
+自然而然的跳到了cglib这里
+
+
+
+#### CglibAopProxy#intercept()
+
+```java
+ public Object intercept(Object proxy, Method method, Object[] args, MethodProxy methodProxy) throws Throwable {
+ Object oldProxy = null;
+ boolean setProxyContext = false;
+ Object target = null;
+ TargetSource targetSource = this.advised.getTargetSource();
+ try {
+ if (this.advised.exposeProxy) {
+ // Make invocation available if necessary.
+ oldProxy = AopContext.setCurrentProxy(proxy);
+ setProxyContext = true;
+ }
+ // Get as late as possible to minimize the time we "own" the target, in case it comes from a pool...
+ target = targetSource.getTarget();
+ Class> targetClass = (target != null ? target.getClass() : null);
+ List