springboot打印路由信息

之前使用作者使用过jfinal框架,觉得里面的打印路由信息的功能挺好用的,方便调试跟踪bug,不过springboot并没有天生自带这个功能啊,所以就写了一个拦截器用来打印路由信息

话不多说,直接上代码

public class UrlInterceptor implements HandlerInterceptor {
    
    private static String[] BAN_URL = { "/favicon.ico", "/error" };
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
            throws Exception {
        /*
         * 跳过一些系统默认的
         */
        for(String str : BAN_URL) {
            if(request.getRequestURI().equals(str))
                return true;
        }
        
        System.out.println("--------------------------------------------------");
        System.out.println("Url: " + request.getRequestURL());
        System.out.print("Parameter: ");
        Map<String, String[]> parameterMap = request.getParameterMap();
        
        StringBuffer sb = new StringBuffer();
        for(Entry<String, String[]> parameter : parameterMap.entrySet()) {
            sb.append(parameter.getKey() + "=");
            StringBuffer param = new StringBuffer();
            for(String s : parameter.getValue()) {
                param.append(s + ",");
            }
            sb.append(param.substring(0, param.length()-1) + "&");
        }

      if(sb.length() > 0)
        System.out.println(sb.substring(0, sb.length()-1));
      else
        System.out.println();

        System.out.println("--------------------------------------------------");
        return true;
    }

}

写好拦截器后应该在配置类中配置这个拦截器

 1 @Configuration
 2 public class MyConfig implements WebMvcConfigurer {
 3     
 4     
 5     @Override
 6     public void addInterceptors(InterceptorRegistry registry) {
 7         registry.addInterceptor(new UrlInterceptor()).addPathPatterns("/**");
 8     }
 9 
10 }

以上就是全部的代码了,复制粘贴即可使用。如果觉得有用的话,给俺一个赞吧,谢谢啦~~

原文地址:https://www.cnblogs.com/CodeBunny/p/13962592.html