Java 带hibernate的SpringMVC,如何添加restful服务端点?

Java 带hibernate的SpringMVC,如何添加restful服务端点?,java,spring,rest,spring-mvc,Java,Spring,Rest,Spring Mvc,因此,我已经启动了SpringMVC并使用hibernate运行 我正在阅读如何使用@ResponseBy添加Restful端点: 如果我有一个端点,比如: http://localhost:8080/services/user/get/1 我将获取userId=1的用户,如何返回,以及如何将我的用户对象转换为XML表示 我是否必须在User.java类中执行一些特殊的操作才能使其正常工作?我过去这样做的方式如下: 用(例如@XmlRootElement)注释用户类 连接合适的弹簧HttpM

因此,我已经启动了SpringMVC并使用hibernate运行

我正在阅读如何使用@ResponseBy添加Restful端点:

如果我有一个端点,比如:

http://localhost:8080/services/user/get/1
我将获取userId=1的用户,如何返回,以及如何将我的用户对象转换为XML表示


我是否必须在User.java类中执行一些特殊的操作才能使其正常工作?

我过去这样做的方式如下:

  • 用(例如
    @XmlRootElement
    )注释
    用户

  • 连接合适的弹簧
    HttpMessageConverter

  • 发送请求时,请确保包含接受标头:
    Accept:application/xml


通过这样做,您可以完全控制
用户如何“扁平化”为XML,但您将放弃所有的艰苦工作(确定正确的端点、数据转换)到Spring。

通过接口的实现,将@ResponseBody注释的方法返回类型转换为实际的HTTP响应。春天来了,春天来了。因此,如果您可以使用JAXB注释来注释您的用户类,那么这可能适合您。若用户是一个Hibernate注释的实体,那个么向其中添加JAXB也可能会有问题。您可能希望为JAXB创建一个中间对象

或者,您可以通过使用来使用任意封送拆收器。有很多内置的实现可供选择,也可以自己编写

通过在AnnotationMethodHandlerAdapter(在dispatcher servlet xml中:

<bean id="xmlMessageConverter" class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter">
    <property name="supportedMediaTypes" value="text/xml" />
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="xmlMessageConverter"/>
        </list>
    </property>
</bean>

Spring MVC与XStream集成(将对象转换为XML)

这是一个有趣的方法:

您必须在类中设置
XStreamAlias
注释,并将Spring配置为使用XStream

我还指出Spring的输出是xml。在url示例中,应该是:

http://localhost:8080/services/user/get/1.xml

也许可以尝试一个XML请求,看看会发生什么。各种类似于“Postr”的浏览器插件非常适合使用RESTful API。