java - 在同一 JVM 中的 Spring 应用程序之间进行通信的最佳方式

标签 java spring tomcat ejb

我正在寻找与具有本地接口(interface)的 EJB 等效的 Spring 的任何想法。我想在一个应用程序服务器 (Tomcat) 内的 Web 应用程序之间进行通信,获得类似跨应用程序直接调用的东西。

预先感谢您的帮助。

最佳答案

最佳方式取决于您的要求。
对于同一 JVM 中的两个 Web 应用程序,我认为您没有相应的标准。

请注意,在任何情况下,EJB 容器都提供了在同一服务器中托管的两个应用程序之间进行通信的功能,您可能无法通过其他技术(池化、事务等...)开箱即用。

1) RMI,面向组件,接近EJB,但技术水平较低

确实,从技术上讲,RMI 接近于依赖于 RMI 技术(除其他外)的 EJB 技术。
但 RMI 也是一个低级 API,因此您应该重写 EJB 提供的许多开箱即用的功能(池、事务等……)。

2) REST,一种面向服务和互操作性的技术

如今,这些网络应用托管在同一个 Tomcat 实例上。
明天,由于多种原因(负载过多、云等...),这些可以部署在不同的 JVM 上。
使用比 JVM 更高的抽象和更标准的方式在应用程序之间进行通信(例如 HTTP REST)可能是一件好事。

关于java - 在同一 JVM 中的 Spring 应用程序之间进行通信的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48929380/

相关文章:

java - 替换 application.properties 以外的 Spring 属性文件中的环境变量

java - 让tomcat在日志语句中记录webapp名称

java - 为什么更改 WEB-INF/web.xml 不会导致 tomcat 重新加载上下文?

maven-2 - 部署 war 时出错(TomCat)

java - 如何告诉 Hibernate 在运行 JUnit 测试时不要存储数据?

java - 405 - 请求 GET 和 POST

c# - 使用 wsimport 导入 .net webservice 时出错

java - 安卓| DexClassLoader,ClassNotFound 异常

java - java 中的整个 try/catch 语句需要大括号吗?真的很奇怪的东西

java - 从起点开始的深度优先算法