AOP@Work: 用AspectJ进行性能监视,第1部分 - 编程入门网
ublic interface ManagedBean {
/** Define a JMX operation name for this bean.
* Not to be confused with a Web request operation.
*/
String getOperationName();
/** Returns the underlying JMX MBean that
* provides management
* information for this bean (POJO).
*/
Object getMBean();
}
/** After constructing an instance of
* <code>ManagedBean</code>, register it
*/
after() returning (ManagedBean bean):
call(ManagedBean+.new(..)) {
String keyName = bean.getOperationName();
ObjectName objectName =
new
ObjectName("glassbox.inspector:" + keyName);
Object mBean = bean.getMBean();
if (mBean != null) {
server.registerMBean(mBean, objectName);
}
}
/**
* Utility method to encode a JMX key name,
* escaping illegal characters.
* @param jmxName unescaped string buffer of form
* JMX keyname=key
* @param attrPos position of key in String
*/
public static StringBuffer
jmxEncode(StringBuffer jmxName, int attrPos) {
for (int i=attrPos; i<jmxName.length(); i++) {
if (jmxName.charAt(i)=='','' ) {
jmxName.setCharAt(i, '';'');
} else if (jmxName.charAt(i)==''?''
|| jmxName.charAt(i)==''*'' ||
jmxName.charAt(i)==''\\'' ) {
jmxName.insert(i, ''\\'');
i++;
} else if (jmxName.charAt(i)==''\n'') {
jmxName.insert(i, ''\\'');
i++;
jmxName.setCharAt(i, ''n'');
}
}
return jmxName;
}
/** Defines the MBeanServer with which beans
* are auto-registered.
*/
private MBeanServer server;
public void setMBeanServer(MBeanServer server) {
this.server = server;
}
public MBeanServer getMBeanServer() {
return server;
}
}
AOP@Work: 用AspectJ进行性能监视,第1部分(6)时间:2011-09-07 IBM Ron Bodkin可以看出这个第一个方面是可以重用的。利用它,我能够用 after 建议自动 为任何实现 ManagedBean 接口的类登记对象实例。这与 AspectJ 标记器接口的 理念类似(请参阅 参考资料):定义了实例应当通过 JMX 公开的类。但是,与 真正的标记器接口不同的是,它还定义了两个方法 。 这个方面提供了一个设置器,定义应当用哪个 MBean 服务器管理对象。这是 一个使用反转控制(IOC)模式进行配置的示例,因此很自然地适合方面。在最 终 代码的完整清单中,将会看到我用了一个简单的辅助方面对系统进行配置。在更 大的系统中,我将用 Spring 框架这样的 IOC 容器来配置类和方面。请参阅 参 考资料 获得关于 IOC 和 Spring 框架的更多信息,并获得关于使用 Spring 配 置方面的介绍。 清单 3. 公开负责 JMX 管理的 bean
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |