为了账号安全,请及时绑定邮箱和手机立即绑定

Apache CXF jax-rs 与 Spring Boot:如何自动配置拦截器

Apache CXF jax-rs 与 Spring Boot:如何自动配置拦截器

繁花如伊 2021-09-12 20:18:37
我有使用 Spring Boot 的 CXF Rest Api,所以这是我的 application.properties:cxf.path=/cxf.jaxrs.server.address=/apicxf.jaxrs.component-scan=truecxf.jaxrs.classes-scan-packages=org.apache.cxf.jaxrs.swagger,org.apache.cxf.metrics我的端点被注释为@Component,但问题是我不仅有组件或提供者,还有 ExceptionMappers、In/Out/Fault Interceptors。现在我想知道它是否也可以通过属性文件进行配置。而且我知道可能的解决方案(不要向我推荐这个):@Beanpublic Server rsServer() {  final JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();  endpoint.setInInterceptors(Arrays.<Interceptor<? extends Message>>asList(    interceptor1,    interceptor2,    interceptor3  ));  endpoint.setOutInterceptors(Arrays.<Interceptor<? extends Message>>asList(out1));  endpoint.setOutFaultInterceptors(Arrays.<Interceptor<? extends Message>>asList(out1));  endpoint.setProviders(Arrays.asList(    provider1(),    provider2()  ));  endpoint.setBus(bus);  endpoint.setAddress("/api");  endpoint.setServiceBeans(Arrays.asList(    endpoint1,    endpoint2,    ...,    endpointN  ));  endpoint.setFeatures(Arrays.asList(new Swagger2Feature()));  return endpoint.create();}这一点都不酷,因为可以自动配置这么多功能,现在对于一些额外的配置,我必须手动配置所有内容。它完全破坏了使用 Spring Boot 的目的。所以..有什么建议吗?
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

如果你需要更多的灵活性,你也可以把它放在false:


cxf.jaxrs.component-scan=false

并创建一个@Configuration扩展类org.apache.cxf.jaxrs.spring.SpringComponentScanServer(通常由 导入cxf.jaxrs.component-scan=true)。在这里,您可以覆盖方法并进行最后一分钟的特定更改,例如在org.apache.cxf.jaxrs.spring.AbstractSpringConfigurationFactory#finalizeFactorySetup专门用于此的方法中。


@Configuration

public class CxfServerConfig extends SpringComponentScanServer {


    @Override

    protected void finalizeFactorySetup(JAXRSServerFactoryBean factory) {

        super.finalizeFactorySetup(factory);


        // Don't bypasses our exception mappers

        factory.getProperties(true).put("support.wae.spec.optimization", false);

    }

}


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 418 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信