【发布时间】:2015-12-02 13:22:42
【问题描述】:
我正在使用 Spring 3 和 Hibernate 5 创建一个简单的 Web 服务。
我的 Maven 依赖项是:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.2.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.2.14.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.1.Final</version>
</dependency>
这不是我的完整依赖项列表,但它可以很好地了解我正在使用的版本。
此 Web 服务的基本要求是提供一个端点,用户可以通过该端点根据唯一 ID 请求一些数据。数据必须以 JSON 格式返回。正在从 SQL Server 2008 数据库视图中检索数据。
我已成功配置 Web 服务以使用 Hibernate 和 JPA 来获取正确的数据,其中 ID 与视图中的一行匹配。 ID 作为 URL 的参数提供,例如:
http://some/resource/location.json?id=1234
现在正如我所说,这很好用,如果 ID 匹配,则获取数据,并向用户返回一个编组为 json 的 POJO。
我的问题是要求将“.json”文件扩展名作为 URL 的一部分。理想情况下,我希望 URL 看起来像这样:
http://some/resource/location?id=1234
注意没有'.json'
我使用的视图解析器配置如下,只需忽略 xml 的东西,我有它,因为我将需要它:
<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
<property name="order" value="1"/>
<property name="contentNegotiationManager">
<bean class="org.springframework.web.accept.ContentNegotiationManager">
<constructor-arg>
<bean class="org.springframework.web.accept.PathExtensionContentNegotiationStrategy">
<constructor-arg>
<map>
<entry key="json" value="application/json"/>
<entry key="xml" value="application/xml"/>
</map>
</constructor-arg>
</bean>
</constructor-arg>
</bean>
</property>
<property name="defaultViews">
<list>
<bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
<bean class="org.springframework.web.servlet.view.xml.MarshallingView">
<constructor-arg>
<bean class="org.springframework.oxm.xstream.XStreamMarshaller">
<property name="autodetectAnnotations" value="true"/>
</bean>
</constructor-arg>
</bean>
</list>
</property>
</bean>
我应该实现不同的视图解析器吗?
如果需要,我可以提供更多详细信息,请询问,感谢您对此提供的任何帮助。
【问题讨论】:
标签: java json spring hibernate jpa