第1章 AOP 的相关概念[理解]
1.1AOP 概述
1.1.1 什么是 AOP
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/54a327ebaceb0739ff46dd4cb6930077e3e.png)
1.1.2 AOP 的作用及优势
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/4f214f741286083c383c1a7aae81be8337f.png)
1.1.3 AOP 的实现方式
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/b846c8ee07a0f8eb272e92f9e8ad59e64b5.png)
1.2AOP 的具体应用
1.2.1 案例中问题
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/6c1660aa5696841cb812c81adf968daf568.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/36cb92f897235c4796ec3ada107ca350ca5.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/4adb6c404dd171c6f11056c9d6e85933b00.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/c1a0ed2100d3a9f1ad12357e93ad5bba736.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/a100a068de93c5029c9da7dd1c781e42ded.png)
1.2.2 问题的解决
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/6244e57e7561deaf980a5a05c7f7e3b09f0.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/db438cafd2de389ceac3599aa61c498f008.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/099f5b798635f0cfb75e0f1a0d88161fc0e.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/65e0986ac1590afb36bd946e26aa87246d2.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/6455c06d464cc775adb886900d71c209c95.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/42669f270434f07f7efa6faaf5d7f1fde37.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/b968366f684926e75cd463e5045b8f8b271.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/67f5b4efe5b5aa930796b33e726a98c3af5.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/10d921116b723551964b29f508d2020b0c0.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/6f4a09ec1fea6449dc3b81ddf933dbcd85b.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/31ea45fe714758ebf0a5ec7845665be5c7b.png)
1.2.3 新的问题
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://img2018.cnblogs.com/blog/1606411/201908/1606411-20190808181845015-1498765916.png)
1.2.4 动态代理回顾
1.2.4.1 动态代理的特点
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/8ff771ef43f89acd8fb8859fbc12979f0e6.png)
1.2.4.2 动态代理常用的有两种方式
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/5abb5e10138923d9028afd587c8d1b9fd99.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/e23b15ef036b328a2a9aa81c80a6f059fd1.png)
1.2.4.3 使用 JDK 官方的 Proxy 类创建代理对象
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/ccb97c3c17c5af91d3edde56a558e0bc031.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/ab470deef36ec6c0d39618bc70fceaf83ab.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/2e889eef7faba8a09a4ac6449ac597fc9d0.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/d8053ec2ba0a89beac86352073768d048d9.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/a3253f6d8939a218f17d51857d76758a426.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/a1dcc75bea1728a11434a8b9959dd424be9.png)
1.2.4.4 使用 CGLib 的 Enhancer 类创建代理对象
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/dfe7e7f2efe1ecefc2e9eafffee09b97169.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/b845ff53a015ae2a5e651ebaa072c94eeb5.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/5c52a7a5f06e6126d8a37015442500397ed.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/5e2693ad764d4f1e5da499c366ebf6a4d2a.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/dc7d9d142e937084a588b2daa0ba592d123.png)
1.2.5 解决案例中的问题
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/c0fcb092261f3f74b06e42327ffd2f294e2.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/82c39cd99a98653d6e80a41327eedf49c83.png)
第2章 Spring 中的 AOP[掌握]
2.1Spring 中 AOP 的细节
2.1.1 说明
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/a4d13367a6101e9729da4ea9b88b4c45a95.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/4449da8d77bf425ebc70a236fe423d93169.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://img2018.cnblogs.com/blog/1606411/201908/1606411-20190808182438284-565578348.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/c2e0b2032cdd7a0f9639a922278faa78c62.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://img2018.cnblogs.com/blog/1606411/201908/1606411-20190808182504974-1588668174.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/3e498179f4fb91d1413a00ec9a1711ffb28.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/7a0ad279893df905fa391f1736a23743020.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/2695943409936f10d0d05d920aec2eb3e9d.png)
2.2.1.5 第五步:抽取公共代码制作成通知
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/7b7d7258e9ea4145bf1e0059ab7f7b139e5.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/f790f6d9acb0612bf914332eaf2c9b5a83f.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/c263156132b50826a48879d939dd9a21504.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/daeca229464e4bc72713bf235fb7f0de57f.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/642053088445a24f848c0b7d4eafbdd0ccf.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/8ad8cb6a98bb8dacd65c40dcf79a2f3f31c.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/f80866d933f2947cb9b0ad0a585d7d78d08.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://img2018.cnblogs.com/blog/1606411/201908/1606411-20190808182818294-345174050.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/96aa54260e944e38729af56d0291997bdee.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/3b80187602dcf6b6575d7295a1ff7aaa9ed.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/3724e77766d0a65dad523106b61d40999db.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/f38f42ac5a2bb65d458ca97fe21f5dd9734.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://img2018.cnblogs.com/blog/1606411/201908/1606411-20190808182943337-1794033988.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/ba1b968179960ba96933a583daee66b0ee8.png)
2.3基于注解的 AOP 配置
2.3.1 环境搭建
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/4bf4132e37ed2e06fe176e157a3603448dc.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/3db255f5c68306d8813c5af40b0c37d4836.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/2f32648ea0017c8c06e386f08b9b7bb8241.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/cc7272944bb1d6a2e4fa2b0a2c2a7332601.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/212e01f37052794a958a580009335c4602b.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/a70dc33b0c1d78592c00f5c49ad5f33cb67.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/e4ad439c17d25aa077c15fa48f29b452a77.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/54ed5dede7b1f9b644c6a4c5fb3460051c4.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/5b0d642dff68d7ab8823f29ee05b8a007ff.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/0f720378d74a6e8af2219494a676fafa813.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/a1ff6fcf6c820aa96caa942bcddd711e503.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/d328e57d4e8f6324ab56dc1e8430e3ac8a9.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/e0c7a3c0c9a90744b70d844fa287ffcb2d4.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/985a443259fd5e4850619bdbce5be7bbe90.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/b290bd345221e468b6569d91fe320804752.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/0c1c6dc80ba26d05508eb8484275a2dc937.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/8e43924a57746930d769621957b239c457d.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/5c087819691a6d7a5d3d305266f6af4fb24.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/33edaa90b1c09fd31aac9892f90b84b8da1.png)
![java day59【 AOP 的相关概念[理解] 、 Spring 中的 AOP[掌握] 、 Spring 整合 Junit[掌握] 】](https://oscimg.oschina.net/oscnet/395d764b357a94c763dc80c0b3c3c00fdeb.png)