java高级培训:在java高级编程中为什么会用到aop

2020年11月18日 17:11

47

    在传统的业务处理代码中,比如你要操作数据库,会进行事务的处理或者打印一些日志。虽然通过OOP也可以实现,比如通过继承或组合的方式来达到代码的复用,但是如果实现某些功能,比如日志记录,相同的代码会分散到各个方法中,如果后面要想关闭某个功能或进行修改就必须要修改所有的方法,非常的不方便。

java高级培训

    那么为了解决为了解决这个问题,AOP的思想随之产生。它采取了横向抽取机制。将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再将这些提取出来的代码应用到需要执行的地方。这种采用横向提取机制的方式。是采用传统的AOP方式下无法办到的。因为传统的面向对象思想只能实现父子关系的纵向重用。


    在AOP思想中,通过aspect(切面)可以分别在不同的类的方法中加入,例如事务日志权限和异常处理等功能。


    使用切面这种横向方式。能够使开发人员在编写业务逻辑时专注于核心业务逻辑,而不用过度的关注与其他业务逻辑的实现。这样可以提高开发效率,同时还增强了代码的可维护性。


    当前有两个主流的AOP框架,即springaop和AspectJ。前者是用纯Java实现的,不需要特殊的编译过程和类加载器。在操作过程中,可以通过代理将增强的代码植入到目标中。而AspectJ是一个基于Java语言的AOP框架。从Spring2.0开始,引入了AspectJ支持,并提供了一个特殊的编译器来在编译时提供水平代码植入。


相关推荐:java高级培训:AOP的专业术语


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

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

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



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

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

售后反馈
返回顶部