JFinal中的AOP
2016-03-22 10:33
295 查看
本帖讲的主要是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
对于该层以上的拦截器进行清除(不清除该层)
使用情况,比如在进行任意操作的时候有一个登录拦截器,但是对于登录操作你是不能拦截的。
关于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
对于该层以上的拦截器进行清除(不清除该层)
使用情况,比如在进行任意操作的时候有一个登录拦截器,但是对于登录操作你是不能拦截的。
相关文章推荐
- 微服务实战(三):深入微服务架构的进程间通信
- tomcat URL乱码问题
- MVP架构
- Shell简单介绍
- 为什么你应该放弃 Windows10 而选择 Linux
- tomcat查看实时日志
- 微服务实战(一):微服务架构的优势与不足
- docker:dial unix /var/run/docker.sock: permission denied.
- runloop理解和剖析
- 3月份Web服务器份额:Microsoft亚军 紧追Apache
- linux mplayer 播放yuv格式 (转载)
- 如何用tomcat发布自己的Java项目
- 在应用角度Docker容器技术带来的改变
- Linux下配置jdk1.7
- 部分网站中加载外部js 禁止的疑问
- linux常用命令
- Docker与传统虚拟化的差别
- centos linux 安装PHP+APACE +MYSQL
- 【云计算】Docker 镜像如何设置语言环境?bash: warning: setlocale: LC_ALL: cannot change locale (en_US)
- linux下如何模拟按键输入和模拟鼠标