大家好,我是IT修真院北京分院第28期的学员,一枚正直纯洁善良的java程序员
今天给大家分享一下,修真院官网java任务1,深度思考中的知识点——spring Aop。
1.背景介绍
AOP是什么
AOP(Aspect Orient Programming),面向切面编程,面向对象编程OOP的一种补充,底层采用动态代理方式实现
AOP用来干什么
面向切面编程,就是将交叉业务逻辑封装成切面,利用AOP容器的功能织入到主业务逻辑中。
交叉业务逻辑:指通用的、与主业务逻辑无关的代码,例如安全检查、事务、日志等
Aspectj是什么
对于AOP这种思想,很多框架都进行了实现,spring是其中之一,Aspectj也实现了AOP,且方式更简洁方便,支持注解式开发,所以spring又将Aspectj对于AOP的实现引入到自己的框架中
在spring中使用AOP开发时,一般使用Aspectj的实现方式
2.知识剖析
切面分类:
前置通知,后置通知,环绕通知,异常通知,最终通知
Aspectj切点表达式:
execution(* * ..UserController.*(..))
返回值类型
方法名(参数名)
* 0至多个字符
.. 方法参数中表示任意参数,包名后表示当前包及其子包
3.常见问题
1、环绕通知无效
2、有参数的方法无法织入通知
4.解决方案
1、返回值类型Object写成了void
2、切点表达式中没有写参数
5.编码实战
6.扩展思考
AOP基于spring实现
7.参考文献
https://baike.baidu.com/item/Aspectj/4830848?fr=aladdin
http://blog.csdn.net/zl3450341/article/details/7673938
8.更多讨论
9.鸣谢
视频:https://v.qq.com/x/page/j0531a8c8ub.html
PPT:https://ptteng.github.io/PPT/PPT-java/java-task3-AOP.html#/
结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~
网友评论