AOP核心概念
AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构
作用︰在不惊动原始设计的基础上为其进行功能增强(无侵入式编程)
![image-20230218163500386](https://i-blog.csdnimg.cn/blog_migrate/b32ca47bd209845bd173bac6c4a16ab3.png)
![image-20230218163511573](https://i-blog.csdnimg.cn/blog_migrate/c3bb615e0112d98a93fc29271d17e95c.png)
AOP入门案例
![image-20230218164949739](https://i-blog.csdnimg.cn/blog_migrate/93d5565e5ca27bb565671b56c3d6c6e0.png)
![image-20230218192052222](https://i-blog.csdnimg.cn/blog_migrate/3fba61d476348d5fdce6a3221522f705.png)
![image-20230218192105900](https://i-blog.csdnimg.cn/blog_migrate/c6096845ff54a442e8bcc9359d6dd783.png)
![image-20230218192122854](https://i-blog.csdnimg.cn/blog_migrate/3b3c6f86d0f4f469080da607425f37e5.png)
![image-20230218192132719](https://i-blog.csdnimg.cn/blog_migrate/63b96f2706e193f3d7afaa46859fa540.png)
![image-20230218192151858](https://i-blog.csdnimg.cn/blog_migrate/113d47acbac65e8b98eaf2cc668e7910.png)
![image-20230218192212637](https://i-blog.csdnimg.cn/blog_migrate/fe80d45262a0acce1ceafe8ccb2afcf4.png)
![image-20230218192219286](https://i-blog.csdnimg.cn/blog_migrate/83f3a61ea70908bc59319fa4ee66e0d9.png)
AOP工作流程
![image-20230218195927322](https://i-blog.csdnimg.cn/blog_migrate/c181bceac815ff2cab5ccf5d922342ac.png)
![image-20230218195947756](https://i-blog.csdnimg.cn/blog_migrate/bb4aad3f5cac063ee89a45b9f4b9ba04.png)
AOP切入点表达式
切入点∶要进行增强的方法
切入点表达式:要进行增强的方法的描述方式
![image-20230218200228319](https://i-blog.csdnimg.cn/blog_migrate/a28080d077f6456a8f1332015f76255e.png)
切入点表达的格式
![image-20230218200552347](https://i-blog.csdnimg.cn/blog_migrate/b7203d4b5156e168a4048350f1d54c9f.png)
通配符
![image-20230218200748893](https://i-blog.csdnimg.cn/blog_migrate/384cd69c2a728f7945ae5ebb3601908b.png)
![image-20230218201818808](https://i-blog.csdnimg.cn/blog_migrate/e4a16768a44a0f130892b9acca28641d.png)
AOP通知类型
![image-20230218202831702](https://i-blog.csdnimg.cn/blog_migrate/0da0a2b8fdd3959425f2b9ab3a46932e.png)
before
![image-20230218203724427](https://i-blog.csdnimg.cn/blog_migrate/470e864889d82cfe7a5aa6bc755ca383.png)
after
![image-20230218203738557](https://i-blog.csdnimg.cn/blog_migrate/76d12ee38a1457d5b114bb358fba67ef.png)
around(重要)
![image-20230218203754508](https://i-blog.csdnimg.cn/blog_migrate/9b00b542d25d1ff0347b1d819aa298b2.png)
![image-20230218203817343](https://i-blog.csdnimg.cn/blog_migrate/a5ca7cd46ae2ed0db8c29a6ddb5ba2d8.png)
万次执行时间:
![image-20230218210800240](https://i-blog.csdnimg.cn/blog_migrate/fe8001e898cf0a1b6682cf8d801ffd52.png)
AfterReturning
![image-20230218204618848](https://i-blog.csdnimg.cn/blog_migrate/6cdf985880226d5fb3ef05a587238c97.png)
AfterThrowing
![image-20230218204639591](https://i-blog.csdnimg.cn/blog_migrate/ffeddbd8d0d753fef2acc92e71afa52b.png)
AOP通知获取数据
![image-20230218211053775](https://i-blog.csdnimg.cn/blog_migrate/f702ef8aa31e0b1e6631d442381d4304.png)
参数:
![image-20230218211903013](https://i-blog.csdnimg.cn/blog_migrate/5953a739112ed02507c8078495d7a9fa.png)
返回值:
![image-20230218211941365](https://i-blog.csdnimg.cn/blog_migrate/91121cbf87ff1f57b8c2c85d73f0b0a4.png)
异常:
![image-20230218211956657](https://i-blog.csdnimg.cn/blog_migrate/68a64d9c034cf496af892e4c4ee8f44b.png)
AOP总结
![image-20230218213333448](https://i-blog.csdnimg.cn/blog_migrate/19e528a7757a6ac644f7038a2cfe9d31.png)