当前位置: 首页 > 知识库问答 >
问题:

拦截器无法在Spring引导版本1.5.8中接收请求

澹台华翰
2023-03-14

我有一个应用程序,它使用了相当旧的SpringBoot版本。我已经在应用程序中应用了拦截器,但请求没有到达拦截器

@Configuration
public class TestConfiguration extends WebMvcConfigurerAdapter {

@Bean
public GenericInterceptor genericInterceptor() {
    return new GenericInterceptor();
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(genericInterceptor()).addPathPatterns("/**");
}}

bean返回的类是下面声明的GenericInterceptor。

public class GenericInterceptor extends HandlerInterceptorAdapter{
    // custom logic 
}

主要的Spring引导类定义如下

@SpringBootApplication
@EnableWebMvc
public class TestApplication implements WebApplicationInitializer {

public static void main(String[] args) {
    SpringApplication.run(TestApplication.class, args);
}}

请求未到达通用侦听器。这是因为@EnableWebMvc还是缺少什么。有人能解释一下吗?

共有1个答案

朱运诚
2023-03-14

您应该将@EnableWebMvc用于@Configuration,如文档所述:

将此注释添加到@Configuration类将从WebMvcConfigurationSupport导入Spring MVC配置

注意:只有一个@Configuration类可以具有@EnableWebMvc注释来导入Spring Web MVC配置。然而,为了自定义提供的配置,可以有多个@Configuration类来实现WebMvcConfigrer

尝试下面的代码:

@EnableWebMvc
@Configuration
public class TestConfiguration extends WebMvcConfigurerAdapter {

    @Bean
    public GenericInterceptor genericInterceptor() {
        return new GenericInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(genericInterceptor()).addPathPatterns("/**");
    }
}
 类似资料:
  • 本文向大家介绍Struts2之Action接收请求参数和拦截器详解,包括了Struts2之Action接收请求参数和拦截器详解的使用技巧和注意事项,需要的朋友参考一下 技术分析之在Struts2框架中使用Servlet的API 1. 在Action类中也可以获取到Servlet一些常用的API 需求:提供JSP的表单页面的数据,在Action中使用Servlet的API接收到,然后保存到三个域对象

  • 问题内容: 在Spring Boot应用程序中添加HttpRequest拦截器的正确方法是什么?我想做的是记录每个HTTP请求的请求和响应。 我发现了一些有关如何对较早版本的spring进行相同操作的Web示例,但这些示例与applicationcontext.xml一起使用。请帮忙。 问题答案: 由于你使用的是Spring Boot,因此我假设你希望在可能的情况下依靠Spring的自动配置。要添

  • 我找到了一些关于如何使用spring旧版本执行相同操作的web示例,但这些示例适用于ApplicationContext.xml。请帮帮忙。

  • 我正在尝试做一个基本的Spring SecurityD/B身份验证程序。我试过两种方法。 方法1:使用自定义表进行Spring Security验证<方法2:使用特定于Spring security的数据库表进行用户身份验证和授权。 文件位置: 1.index.jsp- 对于方法1,Spring security并没有拦截请求,我在控制台中也并没有看到错误。我没有截获这个请求,而是直接接受了邀请。

  • 现在,当我到达spring-boot应用程序的endpoint时,它工作得很好 基本上,它根本不调用preandle。我错过了什么????

  • 主要内容:定义拦截器,配置拦截器,拦截器的执行流程,多个拦截器的执行流程。拦截器(Interceptor)是 Spring MVC 提供的一种强大的功能组件。它可以对用户请求进行拦截,并在请求进入控制器(Controller)之前、控制器处理完请求后、甚至是渲染视图后,执行一些指定的操作。 在 Spring MVC 中,拦截器的作用与 Servlet 中的过滤器类似,它主要用于拦截用户请求并做相应的处理,例如通过拦截器,我们可以执行权限验证、记录请求信息日志、判断用户是