【发布时间】:2014-05-04 15:34:50
【问题描述】:
我有两个 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 的 bean。我如何告诉它我想要 applB 还是 applA 的 bean?
我是否应该(如何?)使用
MBeanServerConnection connection = JmxUtils.getMBeanServerConnection(url);
并在 url 中指定不同的端口,具体取决于我要从中获取 bean 的应用程序?
【问题讨论】:
-
为每个 bean 赋予不同的 bean id 并通过 id 而不是 name 访问它们。
-
id 位于两个应用程序都包含的 jar 中的 .xml 中。有没有办法在其中一个应用程序中为 bean 创建别名?
标签: java spring tomcat jmx spring-jmx