java - 后端架构: RESTful web service

标签 java spring rest architecture

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

我计划将其编写为 RESTful Web 服务,并且我还希望拥有依赖项注入(inject)、事务管理和持久性框架。这里的限制是我将使用 Apache Tomcat Web 服务器,因此我无法使用 EJB(我无法使用 JBoss 或其他应用程序服务器)

我最初的想法是使用 Spring 框架 - 坚固、支持良好并且可以轻松满足我所需要的一切。我有点犹豫是因为我只想要没有 View 的 REST 端点,而如果我使用 Spring,它将通过 Spring MVC 框架。使用Spring MVC没有View部分正常吗?

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

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

感谢您的想法。提前致谢!

最佳答案

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

  • JAX-RS RESTful 前端,将服务调用委托(delegate)给
  • 服务 EJB,使用 @Inject CDI 注释注入(inject) RESTful 类

不使用 Spring 有以下优点:

  • 减少了对 3pp 的依赖,减少了所需的技术。这并不是一个明显的优势。
  • 坚持使用标准 Java EE 技术可以让您的应用具有可移植性(或多或少)

相反,我认为 Spring 如此广泛且有据可查,因此使用它是一种魅力。 Spring 的可移植性也很好,与 Spring 相比,我在不同 EE 供应商之间的不同 CDI 错误和错误实现(?)方面遇到了更多问题。我想Spring不会强制你走MVC的方式。您可以部分使用它或根据需要混合使用。如果您知道底层是什么,那么您就可以以非常灵活的方式使用 Spring。

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

关于java - 后端架构: RESTful web service,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460336/

相关文章:

java - 如何有效地使用目标 MappedByteBuffer?

java - Spring 生成的 WSDL 公开了错误的协议(protocol)(HTTP 与 HTTPS)端点位置

django - REST 请求将协商哪个 `format`?

rest - API 路由命名约定

java - 按两次 ToggleButton 时无法在自定义线程中执行 while 循环(仅适用于第一次)

java - 如何处理需要组合起来创建响应的多个客户端请求?

java - 从排序流中获取拆分器会引发异常

java - 如何通过 Spring Boot 使用相同的实体连接 3 个数据库?

spring - 不支持 DML 操作。无法使用 spring 数据更新 postgresql 数据库中的数据

java - 从参数化 RESTful GET 操作接收 "Request Entity Cannot be Empty"