Java是面向对象编程,Java AOP是面向切面编程,最近学习该部分内容知识,讲学习心得在这里做一个整理,以帮助后续学习以及使用。
首先什么事AOP?个人理解,在开发过程中,又核心业务,也有非核心业务。例如一个登陆功能,在登录功能中核心业务是进行登陆操作,继判断用户是否在数据库中存在;同事也有一些非核心业务,如日志记录,参数校验等。模块化开发思想,将这三部分模块进行分开处理,从而不会使得代码冗余,方便维护。但是模块分开之后,我所需要的效果还是要包含校验,日志和登录。AOP所处理的,就是将这三部分内容按照一定的规则组合起来。如下图:
AOP的底层核心,就是Java的动态代理机制,AOP中有几个很重要的概念,整理如下表:
横切关注点 | 从每个方法中抽取出来的同一类非核心业务 |
切面(Aspect) |