java高级培训:什么是springaop

2020年11月19日 16:11

43

    AOP(AspectOrientedProgramming),即面向切面编程,对于面向对象编程(OOP)来说,AOP是一种补充。面向对象编程是软件开发的最基本抽象思想,OOP使得代码脱离了面向过程这种高耦合的代码开发模式,同时OOP引入了封装、继承、多态等概念建立了一种纵向依赖关系,从代码复用的角度看,OOP复用了同一继承链上的代码,也就是说OOP是纵向代码复用,无法横向代码复用。OOP的缺陷导致了很多公共代码需要重复引用重复编写,这也是Java项目工程中常常需要封装很多静态类、公共类的原因,但对于Java程序员来说这不是一件很正常的事情吗?就像吃饭要用筷子夹,喝汤要用勺子舀一样。而AOP的思想却是关注横向切面,相当于在纵向关系链中横切一刀,将那些业务模块的公共调用代码封装起来,形成一个切面(Aspect),从而减少了公共代码的引用点,提高了可维护性。下图是小编绘制的一副AOP与OOP关系的小图:

java高级培训

    很多小伙伴问AOP适合应用于什么样的场景?关于这个问题,网上有回答大部分都是权限认证、日志、事务、监控等场景,其实在小编看来,AOP是一种横向关注思想,可以说是一种基本的开发技巧,并不局限于某些特定的应用场景,只要在系统中,从横向角度可以看到有代码优化与简洁的空间,那就能用AOP技术来改善代码。这里小编始终在强调两个字:横向!的确,AOP开发最重要的指导思想就是角度,而最重要的观察角度就是横向(就像上图中小编画的程序员的眼睛那样观察)。关于AOP的理解,忆蓉之心说他一直把AOP看做”刀与豆腐的关系,哪里不爽,就切一刀“,的确这种横切一刀很形象的表达了AOP两个重要元素:横向与切面。其实过滤器技术(filter)即可看成面向切面的一种开发思想,只是过滤器一般应用于特定场景,不具备通用性。


相关推荐:架构师培训:Spring AOP的原理


更多鲁班学院java高级培训免费课程试听地址https://www.lubanjava.com/course.html

鲁班学院java高级培训课程https://www.lubanjava.com/course/detail/519.html

加群即可领取鲁班学院最新Java高级培训课程资料学习包 群号:700541970


在线咨询
免费试听
领取优惠
加群交流

扫一扫
加群领取架构师资料

售后反馈
返回顶部