前言
@FilterRegistration
和@ServletRegistration
注解是Springboot3.5.x
版本之后提供的注解,使用 @ServletRegistration 注册 Servlet,使用 @FilterRegistration注册Filter
注解使用
@FilterRegistration使用
创建一个Springboot3.5.x
版本新属性,然后
java
@Slf4j
public class TestFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
log.info("TestFilter:{{}}", request.getRequestURI());
//执行
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
less
@Configuration(proxyBeanMethods = false)
public class FilterConfiguration {
@Bean
@FilterRegistration(name = "encoding-filter", urlPatterns = "/*", order = 0)
public TestFilter encodingFilter() {
return new TestFilter();
}
}
输出结果为

@ServletRegistration使用
scala
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.getOutputStream().println("hello world");
}
}
less
@Configuration(proxyBeanMethods = false)
public class FilterConfiguration {
@Bean
@ServletRegistration(name = "encoding-filter1", order = 0)
public MyServlet myServlet() {
return new MyServlet();
}
}
总结
Springboot3.5.x
版本之后,更新了许多优秀属性,可以用用看