AOP
AOP面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种功能。
在实现管理系统的各种功能时,增删改查一般需要登录者的权限,以防用户直接输入链接地址,在未登录的情况下进行管理操作,保证系统的安全性。
一般可以在每个功能方法下编写验证功能,从session中获取用户,如果用户不存在,则返回主页面,这样代码重复量较大,也可以通过调用验证接口做,也有重复量。而AOP通过声明切面类,事先选取哪些方法的前后需要做一些操作(如用户验证),这些选出来的方法就是切点,而编写的验证操作为Advice。切面和Advice结合在一起,形成了切面。
- Aspect(切面): Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。
- Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。
- Pointcut(切点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。
- Advice(增强):Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。