Springboot 拦截器 与过滤器配置 (Maven)

  • 导入 pom.xml 包

  • 编写 拦截器类 继承 HandlerInterceptor 并且重写 preHandle、postHandle、 afterCompletion 方法

  1. preHandle: 在业务处理器处理请求之前被调用。预处理,可以进行编码、安全控制、权限校验等处理;
  2. postHandle: 在业务处理器处理请求执行完成后,生成视图之前执行。后处理(调用了Service并返回3. ModelAndView,但未进行页面渲染),有机会修改ModelAndView (这个博主就基本不怎么用了);
  3. afterCompletion: 在DispatcherServlet完全处理完请求后被调用,可用于清理资源等。返回处理(已经渲染了页面);

@Component  // 把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
public class TimeInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println(((HandlerMethod)handler).getBean().getClass().getName());
        System.out.println(((HandlerMethod)handler).getMethod().getName());
        System.out.println("这里是 Pre");
        request.setAttribute("startTime",new Date().getTime());
        return true;
    }
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
        System.out.println("这里是post");
        System.out.println( "服务处耗时: " + (new Date().getTime() - (Long) request.getAttribute("startTime"))+"毫秒");
    }
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
        System.out.println("这里是 afterCompletion ");
        System.out.println( "服务处耗时: " + (new Date().getTime() - (Long) request.getAttribute("startTime"))+"毫秒");
        System.out.println("ex is" + ex);
    }
}

-虽然这里注解了@Component 但还是需要在 webConfig 进行再一次配置 让它被Spring 管理


@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Autowired   //注入写的拦截器
    private TimeInterceptor timeInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(timeInterceptor);
    }

//以下编写过滤器

    @Bean
    
    public FilterRegistrationBean characterEncodingFilterRegister(){
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        CharacterEncodingFilter filter = new CharacterEncodingFilter("UTF-8");
        filter.setForceEncoding(true);
        registrationBean.setFilter(filter);

        List<String> urls = new ArrayList<>();
        urls.add("/*");
        registrationBean.setUrlPatterns(urls);

        return registrationBean;
    }



}

  • 以下是 与 SpringMVC 中的过滤器比较
 <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Maven是一个Java项目管理工具,而Spring Boot是一个用于快速构建Java应用程序的框架。下面是关于Maven安装和配置Spring Boot的步骤: 1. 安装Maven: - 下载Maven二进制文件:在Maven官方网站(https://maven.apache.org)下载最新版本的Maven二进制文件。 - 解压缩文件:将下载的压缩包解压到你选择的目录。 - 配置环境变量:将Maven的bin目录添加到系统的PATH环境变量中。 2. 创建Spring Boot项目: - 使用Maven命令创建项目:打开命令行终端,进入你想要创建项目的目录,执行以下命令: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=myproject -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` - 这将创建一个基本的Maven项目结构。 3. 配置Spring Boot依赖: - 打开项目的pom.xml文件,在`<dependencies>`标签中添加Spring Boot相关的依赖,例如: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> ``` - 保存pom.xml文件,Maven会自动下载所需的依赖。 4. 编写Spring Boot应用程序: - 创建一个Java类,作为Spring Boot应用程序的入口点。 - 在该类上添加`@SpringBootApplication`注解,表示这是一个Spring Boot应用程序。 - 编写业务逻辑和处理请求的代码。 5. 构建和运行项目: - 在命令行终端中,进入项目的根目录。 - 执行以下命令构建项目: ``` mvn clean install ``` - 构建成功后,执行以下命令运行项目: ``` mvn spring-boot:run ``` 以上是Maven安装和配置Spring Boot的基本步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值