目录
前言
一、什么是面向切面编程
二、java中常用的AOP思想场景
三、示例
小伙伴们在学校学习的时候,是否遇到过许多的编程思想。面向对象,面向过程,面向切面...。学习java的小伙伴在学习面向对象、面向切面的时候是否感到过迷惑。也许过了许久后才反应过来,原来是这么回事。今天我在此记录下什么是面向切面编程,如有不当之处还望指出。谢谢!
AOP(Aspect Oriented Programming):面向切⾯编程,它是一种思想,是对某一类事情的集中处理。通过预编译和运行期间动态代理来实现程序功能的统一维护技术。
学习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的浅谈就到这里。关于具体的应用后续文章应该会有体现。