【发布时间】:2014-01-27 18:49:54
【问题描述】:
我想知道 CXF XML 上下文文件中jaxrs:server 配置的首选语义是什么。
例如,如果我有两个用于用户和订单的服务实现,并且可以从相对路径 "/user" 和 "/order" 访问它们。
我会这样配置服务吗:
<jaxrs:server id="userService" address="/user">
<jaxrs:serviceBeans>
<bean class="com.example.UserServiceImpl />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" />
</jaxrs:providers>
</jaxrs:server>
<jaxrs:server id="orderService" address="/order">
<jaxrs:serviceBeans>
<bean class="com.example.OrderServiceImpl />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" />
</jaxrs:providers>
</jaxrs:server>
或者这样:
<jaxrs:server id="appService" address="/">
<jaxrs:serviceBeans>
<!--
Path configured using @Path annotations on the class definition:
@Path(value="/user")
public class UserServiceImpl {...}
-->
<bean class="com.example.UserServiceImpl />
<bean class="com.example.OrderServiceImpl />
</jaxrs:serviceBeans>
<jaxrs:providers>
<bean class="org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" />
</jaxrs:providers>
</jaxrs:server>
这似乎只是语义上的差异。第二种方式允许我们不重复提供者。但我想知道在执行此配置时应该考虑什么?
谢谢!
【问题讨论】:
-
将restful服务分组为“资源”通常是有意义的,通常在资源级别会有一个@path,如'/user',每个方法都有一个@path,如'/add',' /delete' 等,所以对我来说,您帖子中的第一个选项很有意义。也就是说,这一切都取决于手头的要求......
标签: java web-services cxf jax-rs