欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 什么是AOP(面向切面编程)

什么是AOP(面向切面编程)

2024/10/25 10:25:40 来源:https://blog.csdn.net/u011529483/article/details/141865235  浏览:    关键词:什么是AOP(面向切面编程)

目录

前言

一、什么是面向切面编程

二、java中常用的AOP思想场景

三、示例


前言

小伙伴们在学校学习的时候,是否遇到过许多的编程思想。面向对象,面向过程,面向切面...。学习java的小伙伴在学习面向对象、面向切面的时候是否感到过迷惑。也许过了许久后才反应过来,原来是这么回事。今天我在此记录下什么是面向切面编程,如有不当之处还望指出。谢谢!


一、什么是面向切面编程

 AOP(Aspect Oriented Programming):面向切⾯编程,它是一种思想,是对某一类事情的集中处理。通过预编译和运行期间动态代理来实现程序功能的统一维护技术。

下面举个生活事例来说明一下面向切面,生活中大家都遇到过双方争执吧?甲方和乙方产生了争执,不断的争论一直得不到一个统一的意见。这个时候就需要丙方的切入,丙方的切入需要一个切入点产生一个切面隔离甲方和乙方的争执,然后由丙方从切入点参与进去来中和的集中处理甲方和乙方所争执的事情,从而得到一个合理的处理结果。这就是我理解的面向切面,即程序中的AOP。其中也说明了为什么使用AOP,即统一意见、统一处理问题。

二、java中常用的AOP思想场景

学习java的小伙伴都使用过spring吧?

spring中的业务处理事务控制(transactionManager);

Spring Web MVC的拦截器(HandlerInterceptorAdapter);

JavaWeb中的过滤器(Filter);

...

以上这些都是常遇到的AOP编程思想的实现。

三、示例

大家是否还记得JSP开发中的登录实现,系统中是如何判断用户是否登录的,只有用户登录后才能访问相关的功能页面,否则重定向到登录页面。

实现思路是:用户进入登录页面进行登录,登录成功后将用户相关信息保存到session中。而后在JSP访问时就判断这个记录了用户信息的SESSION,如果有用户信息允许访问,如果为null就重定向到登录页面。这样的实现是很麻烦的,需要一个一个JSP页面做判断。

后来使用servlet,然后引入了Filter,我们在定义的这个Filter中统一处理了上述中的登录验证流程。这样一来就不需要一个一个JSP页面做判断了,是不是方便了很多。这就是AOP(Aspect Oriented Programming)面向切⾯编程的魅力所在。

除了统一的用户登录判断之外,AOP 还可以实现:

系统中对日志的统一处理;

系统中对请求执行的跟踪处理;

系统中的统一编码处理;

系统中的统一异常处理等...


好了!谢谢大家,关于对AOP的浅谈就到这里。关于具体的应用后续文章应该会有体现。 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com