java - 如何在 Spring Boot 中添加过滤器类?

标签 java configuration spring-boot servlet-filters

Spring Boot 中是否有针对 Filter 类(针对 Web 应用程序)的注释?也许@Filter

我想在我的项目中添加自定义过滤器。

The Spring Boot Reference Guide提到关于 FilterRegistrationBean,但我不知道如何使用它。

最佳答案

如果您想设置第三方过滤器,可以使用FilterRegistrationBean

例如,相当于web.xml:

<filter>
     <filter-name>SomeFilter</filter-name>
        <filter-class>com.somecompany.SomeFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>SomeFilter</filter-name>
    <url-pattern>/url/*</url-pattern>
    <init-param>
        <param-name>paramName</param-name>
        <param-value>paramValue</param-value>
    </init-param>
</filter-mapping>

这些将是您的 @Configuration 文件中的两个 bean:

@Bean
public FilterRegistrationBean someFilterRegistration() {

    FilterRegistrationBean registration = new FilterRegistrationBean();
    registration.setFilter(someFilter());
    registration.addUrlPatterns("/url/*");
    registration.addInitParameter("paramName", "paramValue");
    registration.setName("someFilter");
    registration.setOrder(1);
    return registration;
}

public Filter someFilter() {
    return new SomeFilter();
}

以上是使用Spring Boot 1.2.3测试的。

关于java - 如何在 Spring Boot 中添加过滤器类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45941847/

相关文章:

java - log4j2配置文件很困惑

spring - Spring Boot自定义连接对象

java - `if else` 和 `if-else if-else` 之间有区别吗?

java - 如何根据 QuickFix/J 中的 Fix 字典验证 FIX 消息?

php - 从哪里获得适用于 php 7.0 的 64 位 php_zip.dll 扩展?

tomcat - OpenShift 迁移 - Conf 文件中的 ENV 变量没有像以前那样被替换

java - java中扫描线多边形填充算法的问题

java - Android for 循环不像 java 那样工作

java - 在 Spring Boot 中使用 Jackson 时如何防止 Hibernate 延迟加载?

spring-boot - 我的 Spring Boot 应用程序的/health 端点发出有关在同一台机器上运行的 Consul 服务器的所有信息。如何禁用此功能?