commbean java_java – 用于同一服务器上的许多应用程序的相同JMX Mbean类

我遇到了同样的问题,并建立了

Cemo’s solution.这是一个示例实现.

的context.xml

MultiAppMetadataNamingStrategy.java

public class MultiAppMetadataNamingStrategy implements ObjectNamingStrategy, InitializingBean {

private String applicationName;

public MultiAppMetadataNamingStrategy() {

}

public MultiAppMetadataNamingStrategy(String applicationName) {

this.applicationName = Preconditions.checkNotNull(applicationName, "applicationName must not be null");

}

public void setApplicationName(String applicationName) {

this.applicationName = Preconditions.checkNotNull(applicationName, "applicationName must not be null");

}

@Override

public void afterPropertiesSet() throws Exception {

if (applicationName == null) {

throw new IllegalArgumentException("Property 'applicationName' is required");

}

}

@Override

public ObjectName getObjectName(Object managedBean, String beanKey) throws MalformedObjectNameException {

Class managedClass = AopUtils.getTargetClass(managedBean);

String domain = ClassUtils.getPackageName(managedClass);

Hashtable properties = new Hashtable<>();

properties.put("type", ClassUtils.getShortName(managedClass));

properties.put("name", beanKey);

// ensure the application name is included as a property in the object name

properties.put("app", applicationName);

return ObjectNameManager.getInstance(domain, properties);

}

}

这允许设置一个mbean,如:

package com.foo;

@ManagedResource(description = "Bean description")

public class MyBean {

...

}

它将注册一个对象名为com.foo:name=myBean,type=MyBean,app=CustomAppName的mbean

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值