zoukankan      html  css  js  c++  java
  • SpringBoot2 添加应用拦截器

    项目参考:详细参见:《Spring Boot 2精髓:从构建小系统到架构分布式大系统》 第三章 3.6.1节 拦截器

    MyWebMvcConfigurer

    package com.archibladwitwicke.springboot2.chapter03.configurer;
    
    import com.archibladwitwicke.springboot2.chapter03.intercept.AdminLoginIntercept;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
    
    @Configuration
    public class MyWebMvcConfigurer implements WebMvcConfigurer {
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            // 添加一个拦截器,连接以/admin为前缀的 url路径
            registry.addInterceptor(new AdminLoginIntercept()).addPathPatterns("/admin/**");
        }
    }
    

      

    TestAdminController

    package com.archibladwitwicke.springboot2.chapter03.controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @Controller
    @RequestMapping("/admin")
    public class TestAdminController {
    
        @RequestMapping("/hello")
        @ResponseBody
        public String say() {
            return "this is a admin page.";
        }
    }
    

      

    AdminLoginIntecept

    package com.archibladwitwicke.springboot2.chapter03.intercept;
    
    import org.springframework.web.servlet.HandlerInterceptor;
    import org.springframework.web.servlet.ModelAndView;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class AdminLoginIntercept implements HandlerInterceptor {
    
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
            // 如果已经登录返回true。
            // 如果没有登录没有登录,可以使用 reponse.send() 跳转页面。后面要跟return false,否则无法结束;
    
            // 为了测试,打印一句话
            System.out.println("访问了admin下url路径。");
    
            return true;
        }
    
        @Override
        public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
    
        }
    
        @Override
        public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
    
        }
    }
    

      

  • 相关阅读:
    GCC编译器原理(三)------编译原理三:编译过程(3)---编译之汇编以及静态链接【2】
    xmind转为markdown
    XMind破解
    读取字符串中的数字
    "Cannot declare member function ...to have static linkage"错误
    error: cannot bind non-const lvalue reference of type
    (C++ Error: Incompatible types in assignment of ‘char*’ to ‘char [2])
    C++中的map
    17 jQuery阶段_操作样式_操作属性_动画_节点操作
    第一部分:网络多任务_day01_网络编程基础
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/8583874.html
Copyright © 2011-2022 走看看