在CXF Spring Boot中注册过滤器

时间:2017-07-14 01:05:29

标签: java spring spring-boot jax-rs cxf

如何在CXF中注册ContainerResponseFilter / ContainerRequestFilter?就像泽西岛的ResourceConfig。

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

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

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

}

1 个答案:

答案 0 :(得分:2)

如果您已启用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.