這是完整的答案。位和零件可以在online找到,但沒有一個完整的答案,易於遵循/實施。
我會跳過maven部分,因爲它很容易理解。
註冊CXF的Servlet
@WebServlet(urlPatterns="/*")
public class CXFStartServlet extends CXFServlet {
}
註冊所有的Spring bean與@Path作爲CXF服務
@Configuration
public class MyCxfConfig {
@Autowired
private ApplicationContext ctx;
@Bean(name="cxf")
public SpringBus springBus(){
return new SpringBus();
}
@Bean
public Server jaxRsServer() {
LinkedList<ResourceProvider> resourceProviders = new LinkedList<ResourceProvider>();
for (String beanName : ctx.getBeanDefinitionNames()) {
if (ctx.findAnnotationOnBean(beanName, Path.class) != null) {
SpringResourceFactory factory = new SpringResourceFactory(beanName);
factory.setApplicationContext(ctx);
resourceProviders.add(factory);
}
}
JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
factory.setBus(ctx.getBean(SpringBus.class));
factory.setProviders(Arrays.asList(new JacksonJsonProvider()));
factory.setResourceProviders(resourceProviders);
return factory.create();
}
}
不要忘記導入 「MyCxfconfig」 在你的Spring配置。這就是全部:)