java - 在java中构建rest api时使用servlet有什么优点

标签 java rest servlets grizzly undertow

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

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

最佳答案

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

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

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

When you are writing a big scale project, there are many reasons for choosing certain technology. Maybe the technology task is only one of those concerns. You have to predict where your project will go in the future and based on that decide to select the best existing solution.

关于java - 在java中构建rest api时使用servlet有什么优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53578755/

相关文章:

java - 在标签中绑定(bind)值

java - 使用java从MYSQL数据库检索多张图像

java - 在 Java 中限制 Rest API

javascript - 如何访问使用 get 方法发送的参数?

java - 我必须从列表中的一行中获取列 userid

java - Activity 之间的通信,其中一个 Activity 使用 setResult(),另一个 Activity 使用 onActivityResult()

java - 将 4 个字节转换为 int

java - 奇怪的 Java HashMap 行为 - 找不到匹配的对象

java - 有没有一种方法可以使用 Jersey Clinet 从客户端调用 REST 服务上的 HTTP PATCH

java - 如何为数据库表中的每条记录生成一个 id?