【问题标题】:What are advantages of using servlets when building rest api in java在java中构建rest api时使用servlet有什么好处
【发布时间】:2019-05-03 20:40:58
【问题描述】:

我一直在从事几个项目(其中一些非常大),我们总是使用 grizzly2-http 服务器 + jersey 来构建 rest api,我们从来没有遇到任何问题。现在,我一直在寻找其他一些选项,以确保我不会错过一些重大改进,我喜欢 undertow,但它基于 servlet,我以前没有使用过它们,我在球衣容器列表中没有看到它(https://github.com/jersey/jersey/tree/master/containers 虽然我确信它可以以某种方式使用)。我的问题是使用 servlet 实现 rest api 有什么好处?

我找到了很多答案,什么是 servlet 以及它们的作用,但在我看来,每个人都只是在使用 servlet,这是某种约定,没有人真正列出优于“无容器”的优势(这只是我能找到的术语)。是否有一些安全性、性能优势?

【问题讨论】:

  • Servlet 是 Java 中用于构建 HTTP 服务的事实上的标准,因此大多数东西都建立在 servlet 之上,因为 servlet 无处不在(包括 Jersey)。

标签: java rest servlets grizzly undertow


【解决方案1】:

这个问题更具实验性,因此每个人可能会根据他/她的知识有不同的答案/意见。

我个人认为,当您决定编写 REST 应用程序时,应该考虑使用 Servlet 的一些原因:

  • Java 有许多出色的安全库(例如:Spring Security),它们可以配置并与 Servlet 过滤器一起使用,从而有效地控制您的所有请求
  • 使用 java 时 JSON 序列化和反序列化很容易,因为有 gson、jackson 等库
  • 使用 Java 编码时很容易遵循正确的模块化方式,因为 Java Enterprise 堆栈非常适合创建 MVC 和 N 层应用程序
  • 借助出色的 Java 开源项目(例如:Kafka、hadoop 等),您可以在 Java 应用程序中将大量优秀的企业库与您的 REST 数据集成在一起
  • 大多数可能的平台在其大部分服务中都有一个 Java 客户端库,因此最好用 Java 编写 REST 代码,因为以后您可能需要转移到其中一个云中并且随着您的项目变得更大,您无需担心如何连接到这些平台(在您的后端)

当您编写大型项目时,有很多原因 选择某些技术。也许技术任务只是其中之一 那些担忧。你必须预测你的项目将在哪里进行 未来并基于此决定选择现有的最佳解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2015-01-27
    • 2012-10-11
    • 1970-01-01
    • 2013-07-17
    • 2019-01-28
    相关资源
    最近更新 更多