我不知道Java中的WebServices的“任何东西”,最终我需要用Java做一些REST工作,我想在本周学习它。所以我的问题是我需要先学习Java在我学习REST webservices之前的Web服务?我需要先学习哪些先决条件?和你建议的资源。
由于
答案 0 :(得分:2)
Java Web Services的东西与REST服务只有很小的关系。
两者都是网络的“远程服务”,因此它们共享相同类型的问题:对象表示,安全性,错误处理等。
但是你不需要学习WS- *之类的服务定义(WSDL),SOAP ......和大量内容的复杂性。
当您想要“自动”将对象转换为XML或JSON时,Java与REST之间的小关系就出现了。因为基于JAX-RS的Java REST框架可以通过使用JAXB(Java XML Bindings)来实现,所以Java WS框架中也使用了对象转换框架。但是你也不需要使用那个对象转换的东西。
一些JAX-RS兼容框架(如Apache CXF - )也可用于执行JAX-WS(WebServices的Java标准API)。但请注意,像CXF这样的一般服务框架必须处理您不需要学习的其他复杂性(如支持不同的传输)。
您需要先学习什么?
Java Servlets:您不需要成为servlet的专家,但是REST服务是通过Java servlet基础结构安装的,并且有关它的知识会有所帮助。
依赖注入(DI):当您开始执行访问数据库或其他服务的REST资源时,您需要传递一些协作者对象来执行此操作。大多数框架通过使用DI解决了这个问题。例如,大多数JAX-RS框架可以与Spring或Guice一起使用。
提示:我发现很多人使用Spring或Guice,因为..教程显示这是正确的方法。但是他们不知道究竟要解决什么,并以复杂的不可维护的东西结束。我的建议是在使用任何DI框架之前,首先要了解它们背后的概念。
(可选)一点JavaScript和AJAX。如果您计划从网页使用REST服务,那么最好了解它们的使用方式。
已编辑:要包含对Apache CXF的提及,并使用术语JAX-RS而不是Jersey作为特定实现。
答案 1 :(得分:1)
这里有一本关于Richardson书的很好的总结:http://martinfowler.com/articles/richardsonMaturityModel.html,