后端架构:RESTful Web服务

时间:2013-01-22 14:01:33

标签: java spring rest architecture

我正致力于为网站创建后端基础架构。显然,后端基础设施需要与前端无关,它可以是网站,移动网站,移动应用,其他服务,任何东西。

我打算将其编写为RESTful Web服务,我还希望有依赖注入,事务管理和持久性框架。这里的限制是我将使用Apache Tomcat Web服务器,因此我不能使用EJB(我不能使用JBoss或其他应用服务器)

我最初的想法是使用Spring框架 - 坚固,得到很好的支持,并且可以轻松覆盖我需要的所有内容。我的轻微犹豫是因为我只想要没有View的REST端点,而如果我使用Spring,那么它将通过Spring MVC框架。没有View部分使用Spring MVC是正常的吗?

我的选择是否有意义,还是我应该考虑其他框架? 我将JAX-RS作为REST框架的另一种替代方案,但后来我没有获得依赖注入/事务管理/持久性框架,我最终不得不使用其他框架来获取这些框架。

我还注意到有一个项目TomcatEE听起来也可以解决我的问题。

您的意见表示赞赏。提前谢谢!

4 个答案:

答案 0 :(得分:1)

是的,Spring 3 MVC是一个优秀的框架,我正在创建应用程序,它也支持RESTful Web服务。主要好处 - 您从控制器类返回的值自动转换为JSON对象。要使用或不使用查看 - 这取决于您,所有人都可以正常工作而无需观看

答案 1 :(得分:1)

Tomcat并不意味着没有EJB。 Tomcat 7为您带来Jave EE 6,然后您可以使用EJB和CDI技术。我目前正在开发使用以下技术堆栈的软件:

  • JAX-RS RESTful前端,将服务调用委托给
  • 服务EJB-s,使用@Inject CDI批注注入RESTful类

不使用Spring有以下优点:

  • 少一个3pp依赖,少一个技术需要。显然不是一个优势。
  • 坚持使用标准Java EE技术,使您的应用程序可移植(或多或少)

相反,我认为Spring是如此广泛且有据可查,因此使用它是一种魅力。 Spring的可移植性也很好,不同的EE供应商之间的不同CDI错误和错误实现(?)比使用Spring有更多问题。我认为Spring不会强迫你采用MVC方式。您可以部分使用它或根据需要混合使用。如果您知道引擎盖下的内容,那么您可以非常灵活地使用Spring。

备注:稍微考虑一下身份验证。 RESTful意味着BASIC身份验证,但Web应用程序通常需要一个精美的登录页面,并且很难抑制BASIC身份验证弹出窗口。我们使用SSO解决了这个问题,一个带有FORM auth的webapp和花哨的登录屏幕以及用于其他客户端的RESTful服务中的BASIC auth。 SSO导致第一个应用程序中的登录也对RESTful调用有效。

答案 2 :(得分:0)

我将Jersey与JAXB结合使用以绑定到您的域类 一个好的教程可以在这里找到:

http://www.vogella.com/articles/REST/article.html

在使用hibernate / jpa时要注意,因为JAXB无法处理延迟加载的模型(那么你需要编写适配器类)

答案 3 :(得分:0)

我正在以相同的方式使用Spring Rest Data:服务器只响应JSON并且不关心客户端可能对数据做什么。 我也想知道使用MVC但是没问题,没问题!

延迟加载:从我的观点来看,只有两种方法:

  1. 从数据库加载所有渴望并将其发送到客户端
  2. 将引用序列化为链接,由Spring Rest Data完成。比客户端可以/必须决定加载哪个。
  3. 在demo.appdriver.com上有一个使用Spring REST Data的实时演示应用程序 您可以通过http://appdriver.prefabware.cloudbees.net/api/

    访问API