SpringBoot自定义拦截器

🍁博客主页:👉不会压弯的小飞侠
✨欢迎关注:👉点赞👍收藏⭐留言✒
✨系列专栏:👉SpringBoot专栏
🔥欢迎大佬指正,一起学习!一起加油!

在这里插入图片描述


🍁整合SpringMVC

  • 1.先创建个SpringBoot项目,导入依赖
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
  • 创建个启动类
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }

}
  • 创建实体类User
public class User {
    private String username ;
    private String password ;
    private Integer age ;
    private String sex ;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", age=" + age +
                ", sex='" + sex + '\'' +
                '}';
    }
}

  • 编写Controller类
@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/findAll")
    @ResponseBody
    public List<User> findAll() {
        //查询所有
        List<User> users = new ArrayList<User>();

        User user1 = new User();
        user1.setUsername("xfx");
        user1.setPassword("123456");
        user1.setAge(20);
        user1.setSex("男");

        User user2 = new User();
        user2.setUsername("mks");
        user2.setPassword("234567");
        user2.setAge(34);
        user2.setSex("女");

        User user3 = new User();
        user3.setUsername("ls");
        user3.setPassword("34567");
        user3.setAge(34);
        user3.setSex("女");

        users.add(user1);
        users.add(user2);
        users.add(user3);

        return users;
    }
}
  • 测试

在这里插入图片描述

🍁静态资源目录

  • 在springboot中有一个叫做ResourceProperties的类,里面就定义了静态资源的默认查找路径:
  • 默认的静态资源路径为:
    • classpath:/META-INF/resources/
    • classpath:/resources/
    • classpath:/static/
    • classpath:/public
  • 在项目中创建路径进行测试
  • 在static目录下创建index.html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>static目录下的静态页面</title>
</head>
<body>
<h1>static目录下的静态页面</h1>

</body>
</html>
  • 浏览器输入 : http://localhost:8080/index.html进行测试

在这里插入图片描述

  • 在public目录下创建public.html文件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>public目录下的静态页面</title>
</head>
<body>
<h1>public目录下的静态页面</h1>
</body>
</html>
  • 浏览器输入 : http://localhost:8080/public.html进行测试

在这里插入图片描述

🍁自定义拦截器

  • SpringMVC中配置拦截器的步骤 :
    • 编写一个拦截器(实现HandlerInterceptor接口)
    • 注册拦截器(mvc:interceptors)
  • SpringBoot实现拦截器的具体步骤:
    • 编写一个拦截器
@Component
public class MyInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle方法执行....");
        return false;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle方法执行....");
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion方法执行....");
    }
}

  • 通过WebMvcConfigurer注册拦截器
@Configuration
public class MVCConfig implements WebMvcConfigurer {
    @Autowired
    private MyInterceptor myInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myInterceptor)
                .addPathPatterns("/user/findAll")
                .addPathPatterns("/public.html")
                .excludePathPatterns("/index.html");
    }
}

  • 测试拦截效果

在这里插入图片描述
在这里插入图片描述

  • 39
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 39
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会压弯的小飞侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值