码迷,mamicode.com
首页 > 编程语言 > 详细

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

时间:2018-08-21 16:33:05      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:gis   virtual   ram   core   set   创建   rri   extend   pat   

这篇主要说下拦截器的处理,这里就说下org.springframework.web.servlet 下的HandlerInterceptor

Java Interceptor

通过HandlerInterceptor类来看下代码

public interface HandlerInterceptor {
    boolean preHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3) throws Exception;

    void postHandle(HttpServletRequest var1, HttpServletResponse var2, Object var3, ModelAndView var4) throws Exception;

    void afterCompletion(HttpServletRequest var1, HttpServletResponse var2, Object var3, Exception var4) throws Exception;
}

拦截器的处理就在,三个方法的意思一看就明白,也不做过多介绍

那么在代码中我们怎么来处理这些呢?

这里又要结合前面的章节 Filter 接口在处理了,对什么进行拦截,过滤出需要拦截的进行拦截HandlerInterceptor 接口方法,MyHandlerInterceptor extends HandlerInterceptor  实现过程略。。。

根据前面Filter章节获取将拦截器 如下:

 

public class WebMvcConfig extends WebMvcConfigurerAdapter {
    @Autowired
    private MyHandlerIntercepter myHandlerIntercepter;
@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myHandlerIntercepter).addPathPatterns("/**");
        super.addInterceptors(registry);
    }
    
    @Bean
    public FilterRegistrationBean registFilter() {
        FilterRegistrationBean registration = new FilterRegistrationBean();
        registration.setFilter(new OpenEntityManagerInViewFilter());
        registration.addUrlPatterns("/*");
        registration.setOrder(1);
        return registration;
    }

监控下所有的路由地址就行了,那么在.NetCore中怎么来处理的呢?这里就用.NetCore中的 Action 来说明

.NetCore Interceptor

当执行某一个Action的时候 需要在执行前后处理相关业务,下面看下这段代码

public virtual void OnActionExecuted(ActionExecutedContext context);

public virtual void OnActionExecuting(ActionExecutingContext context);

在Action执行前后会执行如上方法,通过对这写方法的重写来处理业务,这里根据Java中其实也差不多,.NetCore通过 创建ActionContext对象 在对象实例 Invoke 之前后分别执行当前 OnActionExecuting 、OnActionExecuted 方法

当然.NetCore中的 Filter 还有其他的,只是这里的ActionFilter 针对的 Action操作而已

 

Java Spring Boot VS .NetCore (十) Java Interceptor vs .NetCore Interceptor

标签:gis   virtual   ram   core   set   创建   rri   extend   pat   

原文地址:https://www.cnblogs.com/liyouming/p/9511732.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!