首页 > 解决方案 > 如何将 spring bean 绑定到 JNDI 以便可以从不同的战争中访问它?

问题描述

我在 Wildfly 中部署了一个 WAR 和一个 EAR。耳朵有一个启动特定 bean 的弹簧启动应用程序。我希望 bean 的实例在 jndi 中可用,例如

java:/mySpringBean

这样我就可以从 WAR 中进行查找(它再次具有弹簧上下文)。目标是重用从 EAR spring boot 实例化的实例。

首先,我不确定这是否可能,我尝试 了https://konstantinpavlov.net/blog/2009/01/01/how-to-export-spring-managed-bean-to-jndi/ 但它似乎没有工作,从上面添加代码后,我在 JNDI 视图下的 Wildfly 管理控制台中看不到条目。

标签: javaspringspring-bootwildflyjndi

解决方案


选择您的 spring 应用程序正在引导的类之一。就我而言,有一个 starupClass 将在应用程序启动时运行。然后我@Autowired bean 到那个类。得到 IntialContext 并绑定 bean。

上下文 ctx = new InitialContext(); ctx.bind("mySpringBean", mySpringBean);


推荐阅读