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

相关推荐
ChinaRainbowSea30 分钟前
9-2 MySQL 分析查询语句:EXPLAIN(详细说明)
java·数据库·后端·sql·mysql
风象南36 分钟前
SpringBoot基于Java Agent的无侵入式监控实现
java·spring boot·后端
崎岖Qiu42 分钟前
【Spring篇08】:理解自动装配,从spring.factories到.imports剖析
java·spring boot·后端·spring·面试·java-ee
香饽饽~、2 小时前
【第十一篇】SpringBoot缓存技术
java·开发语言·spring boot·后端·缓存·intellij-idea
述雾学java3 小时前
Spring Cloud 服务追踪实战:使用 Zipkin 构建分布式链路追踪
分布式·spring·spring cloud·zipkin
程序员爱钓鱼3 小时前
Go语言实战指南 —— Go中的反射机制:reflect 包使用
后端·google·go
ℳ₯㎕ddzོꦿ࿐3 小时前
Spring Boot 集成 MinIO 实现分布式文件存储与管理
spring boot·分布式·后端
MonkeyKing_sunyuhua7 小时前
Ehcache、Caffeine、Spring Cache、Redis、J2Cache、Memcached 和 Guava Cache 的主要区别
redis·spring·memcached
ai小鬼头8 小时前
百度秒搭发布:无代码编程如何让普通人轻松打造AI应用?
前端·后端·github