java - 在 CXF Spring Boot 中注册过滤器

标签 java spring spring-boot jax-rs cxf

如何在 CXF 中注册 ContainerResponseFilter/ContainerRequestFilter?就像 Jersey 的 ResourceConfig 一样。

@Provider
@Priority(value = 2)
public class CorsResponseFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
            throws IOException {

        System.out.println("filtered");
    }

}

最佳答案

如果您已启用 cxf 添加属性 cxf.jaxrs.component-scan=true 那么您的资源和提供程序都应该是应用程序上下文的一部分。因此用 @Service@Component 进行注释。

@Component
@Provider
@Priority(value = 2)
public class CorsResponseFilter implements ContainerResponseFilter {

    @Override
    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
            throws IOException {

        System.out.println("filtered");
    }

}

如果您启用使用类扫描,请确保提供程序是您提供的包的一部分。

cxf.jaxrs.classes-scan=true
cxf.jaxrs.classes-scan-packages=yourpackage where provider is present.

关于java - 在 CXF Spring Boot 中注册过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45093058/

相关文章:

java - 如何设置 map 值类型的上限

java - 如何将 2 个 xpath 合并为一个

java - 为什么会出现通用数组创建错误?

java - Kafka Consumer仅在产生 'enough'数据后才读取

java - 生产中的 Spring Boot API 模拟

java - 有没有办法输入一个unicode值并输出其各自的字符?

java - 每天跟踪 JPA/Hibernate 更新/插入的日志文件

java - 为 hibernate 和@Transactional 配置 spring 数据源

java - 使用 Spring Boot、JPA 通过引用关联实体

java - SPRING BOOT注释: are they required