`
sillycat
  • 浏览: 2491637 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

springmvc的aop处理问题(一)request参数判断

    博客分类:
  • JAVA
阅读更多
springmvc的aop处理问题

最近有个需求,在每个request中,根据不同的情况,需要做一些AOP的操作。不知道杂实现,不晓得和以前写的
aop的cache是否有类似之处呢。网上资料显示针对controller和针对manager的aop应该是不同的,那么就试试吧。
参考文章如下:
http://blog.arendsen.net/index.php/2006/10/31/using-spring-20-aop-to-implement-web-request-interception/

查找到,我们的springmvc里面使用的是
org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping
来处理应用,一直看它的基类是用AbstractHandlerMapping在处理,我们就是利用的立面的interceptors
这个属性。

撰写ValidateHandlerInterceptor集成自HandlerInterceptor,核心代码如下:
public class ValidateHandlerInterceptor implements HandlerInterceptor {
//页面校验的manager
private PageInstanceManager pageInstanceManager;
//日志
private static Log log = LogFactory
    .getLog(ValidateHandlerInterceptor.class);
//调用结束后,已经view render了之后的clean操作
public void afterCompletion(HttpServletRequest request,
    HttpServletResponse response, Object handler, Exception ex)
    throws Exception {
   log.debug("after render the view :" + new Date());
}
//方法调用时,在view render之前的调用
public void postHandle(HttpServletRequest request,
    HttpServletResponse response, Object handler, ModelAndView view)
    throws Exception {
   String validate_rule_flag = request.getParameter("validate_rule_flag");
   log.debug("do I need to put in the validate rules: "
     + StringUtil.isNotBlank(validate_rule_flag));
   if (StringUtil.isNotBlank(validate_rule_flag)) {
    //这个是我应用中的特例,根据request过来的参数,判断是否要加上页面校验的东东
    addValidateRule(request, response, view);
   }
   log.debug("invoke method,but before render view : " + new Date());
}
//方法调用前调用
public boolean preHandle(HttpServletRequest request,
    HttpServletResponse response, Object handler) throws Exception {
   log.debug("before the handle invoke :" + new Date());
   return true;
}
...
}

在我们的xml配置文件中,spring的配置文件做如下增加:
<bean
   class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
<property name="interceptors">
   <list>
    <bean class="cn.sccl.validate.web.ValidateHandlerInterceptor" />
   </list>
</property>
</bean>
其中配置的cn.sccl.validate.web.ValidateHandlerInterceptor就是我们刚才作为HandlerInterceptor的类。这样的话每个.do的request都会被我们
AOP的拦截处理,一些每个action都会考虑要添加的动作或者都需要判断处理的动作就可以放在这里,比filter使用得方便一些,可以得到前后request,response和
我们的spring controller的ModelAndView的各种信息。
分享到:
评论

相关推荐

    在Spring MVC或Spring Boot中使用Filter打印请求参数问题

    使用Spring MVC或Spring Boot中打印或记录日志一般使用AOP记录Request请求和Response响应参数,在不使用AOP的前提下,如果在Filter中打印日志,在打印或消费请求类型为Content-Type:application/json的请求时,会...

    SpringMVC-SSH全注解

    -- 配置那个类那个方法用到事务处理 --&gt; *" read-only="true" /&gt; *" propagation="REQUIRED" /&gt; *" propagation="REQUIRED" /&gt; *" propagation="REQUIRED" /&gt; *" propagation="REQUIRED" /&gt; ...

    Java面试可能问的问题.docx

    面试遇到的问题 1.spring的AOP/IOC怎么用 Ioc: https://blog.csdn.net/qq_42709262/article/details/81951402 Aop: https://blog.csdn.net/q982151756/article/details/80513340 2.设计模式 单例模式 策略模式 ...

    spring_MVC源码

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...

    Spring-activiti:转载测试通过--被人的SSM和ACTIVITI整合框架

    项目技术架构(Spring+SpringMVC+Mybatis)MavenSpring(IOC DI AOP 声明式事务处理)SpringMVC(支持Restful风格)Hibernate Validator(参数校验)Mybatis(最少配置方案)shiro权限控制,结合ajax实现了异步认证与...

    积分管理系统java源码-production_ms:一个SSM架构的ERP管理系统

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    springboot学习思维笔记.xmind

    Servlet3.0+异步方法处理 Spring MVC的测试 MockMVC MockHttpServlerRequest MockHttpServletResponse MockHttpSession SpringBoot基础 SpringBoot概述 什么是SpringBoot SpringBoot核心...

    积分管理系统java源码-production_ssm-master:ssm

    request ~ production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、人员监控、质量监控、系统管理7大模块。 ...

    积分管理系统java源码-springboot:弹簧靴

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-production_ssm:二维码推广管理系统

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-ssm:ssm

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-Production_SSM:生产_SSM

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-Production-SSM-Master:生产-SSM-Master

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-ld_erp:莱达电子商务ERP系统

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-production_ssm:生产_ssm

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-web:网络

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-erpjinxiaocun:erpjinxiaocun

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-MettingNi:镍

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

    积分管理系统java源码-management_sys:管理系统

    request ~ 若图片不能正常显示,请点击博客地址: production_ssm 这是一个生产管理ERP系统。依托科技计划重点项目“制造装备物联及生产管理系统研发”,主要包括:计划进度、设备管理、Craft.io监控、物料监控、...

Global site tag (gtag.js) - Google Analytics