@FilterRegistration和@ServletRegistration注解

前言

@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版本之后,更新了许多优秀属性,可以用用看

相关推荐
步行cgn8 小时前
YAML 的语法规则
spring boot·后端
骇客野人8 小时前
SpringBoot电商系统用户注册、登录、留存及数据埋点设计与落地实施方案
java·spring boot·后端
摇滚侠8 小时前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
霸道流氓气质9 小时前
Spring AI 输出解析器进阶
人工智能·windows·spring
wxwx_bscxy3229 小时前
基于Python新冠疫情可视化分析系统的设计与实现
java·数据库·spring boot·python·微信小程序·sqlite
IT_陈寒11 小时前
React的状态更新坑得我差点加班到天亮
前端·人工智能·后端
码事漫谈12 小时前
一天搭出 80% 的 Agent,然后卡在 95% 到死
后端
leonkay13 小时前
C# 锁机制——【2】深入原理
开发语言·后端·spring·c#·个人开发
江湖十年13 小时前
在 Go 中使用 dyno 包处理动态对象
后端·面试·go
八角丶13 小时前
Node 网络编程 —— TLS 模块
javascript·后端·node.js