1

我对 Java 中的 Web 服务一无所知,最终我需要在 Java 中做一些 REST 工作,而且我想在本周开始学习它 d :) 所以我的问题是我需要先学习 Java Web 服务之前我可以学习 REST Web 服务吗?我首先需要学习的知识的先决条件是什么?以及您建议的资源。

谢谢

4

2 回答 2

2

Java Web 服务的东西与 REST 服务只有很小的关系。

两者都是 Web 的“远程服务”,因此它们具有相同的问题:对象表示、安全性、错误处理等。

但是您不需要学习 WS-* 的复杂性,例如服务定义 (WSDL)、SOAP... 和一大堆东西。

当您想要“自动”将对象转换为 XML 或 JSON 时,Java 中 REST 和 WS 之间的小关系就出现了。因为基于JAX-RS的 Java REST 框架可以通过使用 JAXB(Java XML 绑定)来做到这一点,这是一种在 Java WS 框架中也使用的对象转换框架。但是您也不需要使用该对象转换的东西。

一些与 JAX-RS 兼容的框架(如Apache CXF)也可用于执行 JAX-WS(Web 服务的 Java 标准 API)。但请注意,像 CXF 这样的通用服务框架必须处理您不需要学习的其他复杂性(例如对不同传输的支持)。

你首先需要学习什么?

  • Java Servlet:您不需要成为 servlet 方面的专家,但是 REST 服务安装在 Java servlet 基础架构上,并且有关它的知识会有所帮助。

  • 依赖注入 (DI):当您开始使用 REST 资源访问数据库或其他服务时,您需要传递一些协作对象来执行此操作。大多数框架通过使用 DI 解决了这个问题。例如,大多数 JAX-RS 框架都可以与 Spring 或 Guice 一起使用。

    提示:我发现很多人使用 Spring 或 Guice,因为......教程表明这是正确的方法。但是他们不知道要解决什么,并以复杂的不可维护的东西结束。我的建议是,在使用任何 DI 框架之前,首先要了解它们背​​后的概念。

  • (可选)一点点 JavaScript 和 AJAX。如果您计划从网页使用 REST 服务,最好了解如何使用它们。

已编辑:提及 Apache CXF,并使用术语 JAX-RS 而不是特定实现的 Jersey。

于 2012-06-30T14:57:14.090 回答
1

理查德森的书在这里有一个很好的总结:http ://martinfowler.com/articles/richardsonMaturityModel.html ,

于 2012-06-30T16:48:45.517 回答