1、概述
过滤器是一个对象,可以对客户端向服务发送的请求以及服务端像客户端发送的响应以对象的形式进行处理。在SpringBoot中,可以通过ServletRegistrationBean类注册Filter。
2、示例
2.1、实现Filter接口
package hookind.lsc.system.filter
import jakarta.servlet.Filter
import jakarta.servlet.FilterChain
import jakarta.servlet.ServletRequest
import jakarta.servlet.ServletResponse
import org.slf4j.LoggerFactory
class TestTwoFilter : Filter {
companion object {
private val logger = LoggerFactory.getLogger(TestTwoFilter::class.java)
}
override fun doFilter(request: ServletRequest?, response: ServletResponse?, chain: FilterChain?) {
logger.info("============TestTwoFilter============")
chain?.doFilter(request, response)
}
}
2.2、创建配置类,通过FilterRegistrationBean对象注册过滤器
package hookind.lsc.system.config
import hookind.lsc.system.filter.TestTwoFilter
import org.springframework.boot.web.servlet.FilterRegistrationBean
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
@Configuration
class FilterConfig {
@Bean
fun testTwoFilter(): FilterRegistrationBean<TestTwoFilter> {
val filter = FilterRegistrationBean<TestTwoFilter>()
filter.filter = TestTwoFilter()
filter.urlPatterns = mutableListOf("/*")
return filter
}
}
2.3、结果
后续每有一次符合的请求,过滤器相关代码就会被执行。