Spring bootブロッキング


Springbootプロジェクトのブロッキングの使用方法
ここで私の個人ブログをちょっとお勧めします
csdn:雷園のcsdnブログ
個人ブログ:雷園の個人ブログ
簡書:雷園の簡書
  • ブロッキングを作成し、HandlerInterceptorインタフェース
  • を実装する.
    package com.leiyuan.bs.interceptor;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    //    
    public class MyHandlerInterceptor implements HandlerInterceptor {
        /**
         *   (Controller      )
         *
         * @param request  request
         * @param response response
         * @param o        o
         * @return     
         * @throws Exception     
         */
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object
                o) throws Exception {
            // TODO                 ,         session ,   userSession,        
            if (request.getSession().getAttribute("userSession") == null) {
                //        
                request.getRequestDispatcher("/user/toLogin").forward(request, response);
                // false    
                return false;
            }
            // true   
            return true;
        }
    
        //             (   controller    ,      )
        @Override
        public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o,
                               ModelAndView modelAndView) throws Exception {
    
        }
    
        //                 
        @Override
        public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
                                    Object o, Exception e) throws Exception {
    
        }
    }
    
  • コンフィギュレーションクラスMyHandlerInterceptorConfigを作成し、WebMvcConfigurerAdapterクラス書き換えaddInterceptors(InterceptorRegistry registry)メソッド
  • を継承する.
    package com.leiyuan.bs;
    
    import com.leiyuan.bs.interceptor.MyHandlerInterceptor;
    import org.springframework.stereotype.Component;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    //       
    @Component
    public class MyHandlerInterceptorConfig extends WebMvcConfigurerAdapter {
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
        	/**
             *    addPathPatterns("/**")          “/**”    ,  excludePathPatterns("/user/toLogin")             		   
             */
            registry.addInterceptor(new MyHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/toLogin").excludePathPatterns
                    ("/user/login").excludePathPatterns("/user/toNewUser").excludePathPatterns("/user/newUser");
            super.addInterceptors(registry);
        }
    }
    
    
  • プロジェクトを開始すると、
  • の効果が表示されます.