Java Springboot-过滤器自动注册

Java Springboot-过滤器自动注册,java,spring,spring-boot,servlet-filters,Java,Spring,Spring Boot,Servlet Filters,由于某些需求,我需要将javax.servlet.Filter作为bean交付(我创建它并从方法返回)——我稍后将其自动连接到组件。我的问题是,我不想让它注册为过滤器,而Springboot似乎是自动完成的。我找到了一个实现WebApplicationInitializer的解决方案,但它似乎被忽略了。换句话说,我想指定我想自己使用的过滤器 我正在使用SpringBootStarterWeb 提前谢谢 根据我们上面的评论,您可以通过以下方法解决此问题: 定义过滤器注册bean并禁用其中的过滤器

由于某些需求,我需要将javax.servlet.Filter作为bean交付(我创建它并从方法返回)——我稍后将其自动连接到组件。我的问题是,我不想让它注册为过滤器,而Springboot似乎是自动完成的。我找到了一个实现WebApplicationInitializer的解决方案,但它似乎被忽略了。换句话说,我想指定我想自己使用的过滤器

我正在使用SpringBootStarterWeb


提前谢谢

根据我们上面的评论,您可以通过以下方法解决此问题:

定义过滤器注册bean并禁用其中的过滤器

@Bean
public FilterRegistrationBean registration() {
        DelegatingFilterProxy filter = filter(); // or inject it with a @Qualifier
    FilterRegistrationBean registration = new FilterRegistrationBean(filter);
    registration.setEnabled(false);
    return registration;
}

在没有看到代码的情况下无法提出任何建议。此处有趣的对话似乎相关/有一些建议的解决方案。我想我不能把代码放在这里。但是,我有一个带有@Bean注释的方法,它返回的对象是一个过滤器。据我所见,spring正在检测这样的bean,并自动将其注册为过滤器。这是我想要改变的行为。我想配置spring,所以我说“使用这两个过滤器”,它将只使用我明确定义的过滤器。@JohnHumphreys-w00te谢谢!阅读本期文章后,我尝试了通过定义FilterRegistrationBean来禁用过滤器的解决方案,它的工作原理与我预期的一样。你帮我节省了很多时间:)没问题:)。很高兴这有帮助。我将基于此抛出一个答案,这样您就可以结束它了。我已经创建了一个带有@Configuration注释的类,并在其中定义了Bean。但是,HiddenHttpMethodFilter仍在筛选出我的请求正文。