如何在 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/