gpt4 book ai didi

java - 用于 SpringMVC 应用程序的 RESTful API

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:26 25 4
gpt4 key购买 nike

对于基于 SpringMVC (3.0.1) 堆栈构建的现有 GUI webapp,我想公开一个 RESTful API。您认为什么是合理的选择?

  1. 与 Jersey 等其他框架集成(似乎从头开始)?
  2. 使用 JAXB/Jackson 的内置 SpringMVC 集成?
  3. 我是否应该将另一个 servlet 映射 /api/* 添加到同一个 DispatchServlet
  4. 所有 View 都用 jsp 编码。我应该为我的 XML API 使用 jsp 模板吗?
  5. 构建一个具有共同依赖项的单独的新 Web 应用程序?
  6. 还有什么事吗?

以下是我的 web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<welcome-file-list>
<welcome-file>home.html</welcome-file>
</welcome-file-list>

<servlet>
<servlet-name>spring-mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/spring-mvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>spring-mvc</servlet-name>
<url-pattern>/web/*</url-pattern>
</servlet-mapping>

</web-app>

还有我的 spring 上下文描述符:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context" xmlns:security="http://www.springframework.org/schema/security" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>

<context:component-scan base-package="net.mycrub.poc.controllers" />

<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/views/"
p:suffix=".jsp"
p:viewClass="org.springframework.web.servlet.view.JstlView" />

</beans>

提前致谢;欢迎使用映射示例:-)

最佳答案

我会回答您的一些问题...

集成/分离:我建议您构建与 WEB GUI 分离的 REST 应用程序。人们构建 API 的一个重要原因是将其暴露给多个应用程序,因此我不会将 WEB GUI 与 API 联系得如此紧密。这种思想符合整个关注点分离的概念。例如,如果您稍后构建一个移动应用程序来访问相同的 API,那么即使您需要为部署取消 WEB GUI,也不会受到影响。

Jackson/JAXB:我强烈推荐 Jackson。在我看来,它是性能和功能的最佳组合。

Spring MVC/Jersey:出于以下几个原因,我建议坚持使用 Spring:

1.) 学习曲线较少,如果您已经熟悉 Spring,那么坚持使用它没有错。

2.) 今天 Jersey 的依赖注入(inject)或多或少被破坏了 (http://java.net/jira/browse/JERSEY-517)。因此,如果您像我一样习惯了它在 Spring 中的表现,那么切换到 Jersey 将会很痛苦。这应该在 2.0 版本中解决,但尚未最终确定。

关于java - 用于 SpringMVC 应用程序的 RESTful API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13089473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com