我有一些开发Java程序的经验。但是,我一直在努力理解一些基础知识,例如构成Java企业应用程序的所有不同组件。
例如,我已经实现了从 J2ME 应用程序使用的基于 REST 和 SOAP 的 Web 服务,并为我的 MSC 执行了性能和成本计算测试。
为了开发基于 RESTful/SOAP 的 Web 服务,我在 Netbeans 中使用了向导功能。它使用 JAX-RS 来实现 REST Web 服务。然后我看到其他教程将 JAX-RS 与 Jersey 等一起使用。我经常迷失在诸如API,应用程序框架,配置文件,Java版本等行话中。这里有几个问题
-
JAX-RS是一个API。API 基本上是用于在 Java 中实现某种形式的功能的库集合吗?
-
根据他们的网站"泽西岛是开源的,生产质量的JAX-RS(JSR 311)参考实现,用于构建RESTful Web服务。Jersey是另一个API还是与JAX-RS结合使用,两者之间有什么区别?
我 如何识别我是否实际上已经实现了这样的 API 并知道我是否需要它们?
当我决定实施 RESTful Web 服务时,我只是遵循了 Netbeans 教程,向导提供了简单快速的开发时间。我知道使用向导是因为它们快速并且可以完成工作。但是,我想知道,当您被赋予编码任务时。你怎么知道要使用什么API、框架、附加组件等。哪个版本的Java与库等兼容。是只有我一个人还是你有时会迷路?或者这将来自经验。
感谢您抽出宝贵时间阅读:)
-
JAX-RS 不仅仅是一个 API。它是一个Java规范请求(JSR)。这些定义了实现者必须支持的 API 和行为。如果您编写代码以使用 JSR 定义的 API,则可以选择在运行时使用哪个实现。
-
Jersey 是提供由 JSR 311 定义的 JAX-RS 指示的行为的代码。称其为参考实现表明它受到JSR创建者的支持,并且可能与Oracle的软件捆绑在一起。JSR 311 的其他实现还包括 Restlet、CXF 和 RESTEasy。
-
通常,您将使用实现规范的第三方库,如我在上面的第 2 条中提到的。您可能考虑自己实现它的唯一原因是不存在合适的实现。
找出哪些 API 和规范可以帮助您的唯一方法是通过发现过程。JSR 旨在为一般问题定义解决方案的常用方法,您可以在其中选择最适合您的实现。
-
API 不提供任何实现代码(即执行实际处理的具体类)。API 仅指定接口、注释、异常。可以有一些具有一些非常基本的核心行为的具体类,但仅此而已。标准 API(如 JAX-RS)的理念是为开发人员提供一些代码,而不管底层平台和实现如何。
-
Jersey 是实现 - 它包含许多实际处理 API 承诺的业务的具体类。在 JAX-RS 案例中 - 它处理请求和响应。
-
您通常不实现 API。你用一个。通常JavaEE标准API使用javax。包,而实现使用不同的包 -
com.sun
、org.apache
等。如果您只使用javax.
接口而不使用具体类,这是一个好兆头。
没有任何数学和物理知识,你就无法设计。花很多时间学习基础知识。如果您在开发过程中遇到麻烦,这些向导将无法再为您提供帮助......
- JAX-RS只是一个规范,而不是实现。实现是Jersey,RestEasy等。
- 请参阅1。
- 只要你不编写自己的 JAX-RS 实现,你就不能实现 API。您可以在项目中使用它们。
恕我直言,为给定任务选择正确的框架是 Java 生态系统中更困难的事情之一,只是因为你有大量的选择。
我的策略是首先检查一些众所周知的解决方案(apache.org 就是其中之一),然后实现一个小的概念证明,看看该框架是否可以轻松完成这项工作。不要使用向导,它们无助于发现新的框架。或者使用它们并尝试发现它们的局限性......