【问题标题】:Inject a bean from another application context?从另一个应用程序上下文注入一个bean?
【发布时间】:2014-01-13 06:55:12
【问题描述】:

是否可以从部署在另一台服务器的 Web 应用程序中注入 bean!

我给自己声明一个场景,我有两个使用spring框架的web应用程序,分别部署在不同的应用程序服务器(一个是TOMCAT,另一个是WEBLOGIC),第一个应用程序有ServiceA,第二个有ServiceB,现在我想在ServieA中注入ServiceB?

我尝试用 RMI 做这个,然后用 JMS 做另一个,现在我想知道:

还有其他可能吗? 是否存在有关此方案的任何活动项目? spring框架中如何共享应用上下文,可以吗?

谢谢。

【问题讨论】:

  • 是的,称为网络服务
  • 或者你可以使用 REST(使用 Spring MVC)。

标签: java spring jms rmi distributed


【解决方案1】:

Bean 只是 JVM 中的一个对象。您当然不能直接在另一个 JVM 中使用来自一个 JVM 的对象。

但你可以做两件事:

  1. 使用代理 - 一些具有相同接口但以某种方式调用正确服务器作为实现的对象。
  2. 使用面向服务的架构 (SOA)。每个服务器都应该有一组有限的 bean 来负责它们的功能。所有的bean都可以相互交互。 也许 OSGI 适合这个。

【讨论】:

  • 如果两个应用运行在同一层会怎样?它们在同一个 JVM 中运行,不是吗?
【解决方案2】:

Web 服务,JAX-RS 是最简单的。但是 JAX-WS 为您提供了自动生成客户端代码的工具。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-14
    • 2011-12-28
    相关资源
    最近更新 更多