假设我们有一个REST API(使用spring RestController实现),可以从远程以及同一本地计算机(例如移动电话客户端和同一服务器上的某个mvc组件)访问。
对于同一台机器上的本地软件组件,我猜有两个极端:
基于弹簧的应用是否有任何推荐的中间地带?有些旁路是针对本地执行进行了优化的,但确实将API保留为黑盒?
由于
答案 0 :(得分:2)
作为良好设计的原则,我总是看到服务协议与服务实现脱节。通过这种方式,您可以将服务(例如,简单的Spring bean)公开为REST服务,EJB或任何需要的东西。是的,这是更多的代码,但它使服务更具弹性,并适应特定技术的过剩。
关于你的问题,这实际上取决于“在同一台机器上”的含义:
简而言之,如果您没有非常苛刻的性能目标,或者您不能肯定假设这两个服务将始终驻留在同一主机/ jvm中,那么REST / TCP就是好的。