本文共 798 字,大约阅读时间需要 2 分钟。
本帖讲的主要是Interceptor。
关于AOP的概念,我这里的理解就是,希望在某处理的基础上进行一些先决处理,或者善后处理。
比如,某些论坛的权限验证。访问某某区域需要时登录或者是需要时某某VIP等级才能访问。
这个时候,在页面跳转之前,就可以加上一个权限验证的拦截器。
1.层次分类
(1)全局Global
(2)注射Inject
(3)类Class
(4)方法Method
其中,注射拦截器可以看作是一种特殊的类拦截器,用于非侵入式的部署(部署的时候不需要像其他拦截器一样在代码中加入一行@Before(XXX.class),
而是通过一个函数调用将拦截器与被拦截类绑定),但是注射拦截器总在类拦截器的前面。
2.功能分类
(1)控制层拦截器(Action)
(2)业务层拦截器(Service)
这两种拦截器,内容上一个是针对action的,一个是程序自身的逻辑的。
触发方式上有区别:
①Action拦截器,在用户调用Action的时候自动触发。
②Service拦截器,需要先对某类或者某个对象进行增强,然后才能触发。
3.处理方式
(1)Interceptor
这个主要用于定义拦截器,作一些什么处理,它impliments Interceptor,然后实现intercept方法,
在里面进行被拦截方法的调用,以及相关的处理。
(2)@Before或者me.addGlobalXXXInterceptor
①Before用来配置,Class与Mehotd拦截器
②me.addGlobalXXXInterceptor用来在configInterceptor中配置全局拦截器
③inject拦截器通过在增强的时候用传入参数进行配置
(3)@Clear
对于该层以上的拦截器进行清除(不清除该层)
使用情况,比如在进行任意操作的时候有一个登录拦截器,但是对于登录操作你是不能拦截的。
转载地址:http://ujiei.baihongyu.com/