编程语言
首页 > 编程语言> > 在Java中配置过滤器

在Java中配置过滤器

作者:互联网

我试图按照说明进行操作,并为Spring Boot配置一个预渲染过滤器,但是由于Boot中没有web.xml,因此我需要使用Java配置来执行此操作.

我尝试遵循的针对带有web.xml的Spring应用程序的说明:

1:将此行添加到您的web.xml:

<filter>
      <filter-name>prerender</filter-name>
      <filter-class>com.github.greengerong.PreRenderSEOFilter</filter-class>
      <init-param>
          <param-name>prerenderToken</param-name>
          <param-value>[get from prerender: https://prerender.io/]</param-value>
      </init-param>
  </filter>
  <filter-mapping>
      <filter-name>prerender</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

2:添加对项目pom的依赖关系:

<dependency>
  <groupId>com.github.greengerong</groupId>
  <artifactId>prerender-java</artifactId>
  <version>1.6.4-SNAPSHOT</version>
</dependency>

到目前为止,我做了什么:

我将依赖项添加到pom中.我创建了一个WebConfig类并实例化了Bean:

@Configuration
public class WebConfig {
    @Bean
    public PreRenderSEOFilter PreRenderSEOFilter() {
        PreRenderSEOFilter prerenderFilter = new PreRenderSEOFilter();
        return prerenderFilter;
    }
}

但是我不知道如何配置它. prerenderFilter有一个方法init(FilterConfig filterConfig).但是我不确定如何使用它.

如何配置此prerenderFilter?

解决方法:

在您的WebApplicationInitializer中,可以使用以下代码:

    com.github.greengerong.PreRenderSEOFilter seoFilter = new com.github.greengerong.PreRenderSEOFilter();
    FilterRegistration.Dynamic filter =  container.addFilter("prerender", seoFilter);
    filter.setInitParameter("prerenderToken", "<YOU TOKEN>");
    filter.addMappingForUrlPatterns(null , true, "/*");

标签:spring-boot,configuration,prerender,spring,java
来源: https://codeday.me/bug/20191028/1953195.html