我正在 Spring MVC 中构建网站。由于Spring项目很多,我想知道Spring Web Services使用时会是什么样的场景。
我的意思是可以用它做什么。我真的需要电子商务网站吗
最佳答案
您的问题实际上是关于“网络服务”的。对于外行人对其含义的解释,请阅读此 Wikipedia article .
有许多相关的缩写词被广泛传播:
SOAP (简单对象访问协议(protocol))是一种用于向服务发送请求并获取响应的协议(protocol)。消息以 XML 进行编码,并通过 HTTP 发送。
WSDL (Web 服务描述语言)是基于 SOAP 的服务的服务描述语言。它执行诸如指定消息中的内容以及消息如何绑定(bind)到服务之类的操作。
SOA (面向服务的体系结构)本质上是一种系统体系结构,其中系统由许多使用 WSDL 描述的 SOAP 服务(以及其他服务)组成。
(SOA 的支持者谈论“设计原则”,但在我看来,这只是对人们 20 多年来以其他名称所做的事情的重新包装/重铸。)
<小时/>Do i really need it for ecommerce site
询问您的客户。询问您的系统将与谁的系统进行交互的人。询问您打算将其组件嵌入到您的系统中的供应商。
<小时/>If you have to use WS then what extra facility it will give
如果您必须使用 WS(例如,因为您的站点需要与需要 WS 的其他服务通信),那么您就必须这样做。这是足够的理由。
如果您不必使用 WS,那么您需要平衡使用 WSDL + SOAP 的优势与实现 Web API 的其他方法的优势。 SOA 专家可能会说使用 SOA; AJAX 专家可能会这么说。如果您确实需要这种东西,还有其他远程过程调用技术。
WSDL + SOAP 当然有一些优点;例如
- 网络 API 的机器可读规范,
- 可以根据 XML 模式验证消息,
- 现有 WSDL 服务的生态系统,
- 某些 IT 领域的采用。
但它也有缺点;例如
- 与某些替代方案相比,WSDL + SOAP 具有显着的学习曲线,
- XML 是一种重量级编码方案 - 解析成本相对较高,
- SOAP 只是假装类型安全(与 CORBA/IIOP 相比),
- 基于浏览器的客户端通常不使用 SOAP*; JSON 或纯 XML 通常用于 AJAX 应用程序,
- 许多人认为 SOA 被过度炒作,因而敬而远之。
* 但是,它可以使用;阅读这些IBM DeveloperWorks Articles .
<小时/>如果您的系统主要是一个网站,不需要与 SOAP 服务交互,并且不需要提供 SOAP 服务,我的建议 (FWIW)其他人的 API ....不用打扰。如果需要,您可以随时添加 SOAP 服务 API。
关于java - spring web 服务是用来做什么的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5163433/