我有两个 Spring 应用程序,applA 和 applB,在 Tomcat 中运行 - 都使用 jarX.jar 和 applicationContext-x.xml。
因此,对于每个应用程序,将有一个特定 bean 的实例,在上述上下文中定义。
我使用注释通过 JMX 公开 bean 及其一些方法。
现在我想编写一个调用 bean 方法的测试客户端,但有时我想在 applA 中调用 bean 的方法,有时在 applB 中调用 bean 的方法。
我该怎么做?
我在每个应用程序中也有一个名为 jmxServerConfiguration 的 bean,但每个应用程序都使用不同的端口。
目前在我的 JMX 客户端中,我正在使用
获取 beanBeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource(applicationContextName);
theBean = beanFactory.getBean(BEAN_NAME);
但我总能得到 applA 的好处。我如何告诉它我想要 applB 还是 applA 的 bean?
我是否应该(如何?)使用
MBeanServerConnection connection = JmxUtils.getMBeanServerConnection(url);
并根据我想从中获取 bean 的应用程序,在 url 中指定不同的端口?
最佳答案
将 MBean 导出器上的 default-domain
设置为每个应用程序的不同值,并使用适当的 ObjectName
通过 JMX 访问 bean。
关于java - 两个 spring 应用程序,都使用特定的 jar 和应用程序上下文——我如何控制从上下文中获取 bean 的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23458051/