ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:17.84KB ,
资源ID:5995406      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5995406.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Spring与JMX集成.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Spring与JMX集成.docx

1、Spring与JMX集成Spring与JMX集成 Spring与JMX集成,实现方式灵活而且简单,主要体现在:1、可以自动探测实现MBean接口的MBean对象,而且可以将一个普通的Spring Bean注册为MBean;2、定制管理MBean的接口,根据需要暴露特定管理MBean的操作;3、使用注解定义MBean管理接口;4、可以实现对本地和远程MBean的代理。 标准MBean管理对于实现标准MBean接口MBean资源,在Spring中可以设置不同的探测模式,主要是通过MBeanExporter来实现。例如,定义MBean管理接口:java view plain copy package

2、 org.shirdrn.spring.jmx.autodetect; public interface MyObjectMBean public long getId(); public void setId(long id); public String getName(); public void setName(String name); public String show(); 对应的MBean实现,如下所示:java view plain copy package org.shirdrn.spring.jmx.autodetect; import org.apache.log4j

3、.Logger; public class MyObject implements MyObjectMBean private static final Logger LOG = Logger.getLogger(MyObject.class); private long id; private String name; public MyObject() super(); public MyObject(long id, String name) super(); this.id = id; this.name = name; public long getId() return id; p

4、ublic void setId(long id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; public String show() StringBuffer sb = new StringBuffer().append(id=).append(id).append( , name=).append(name); LOG.info(show()= + sb.toString(); return sb.toString(); 上面是一

5、个标准MBean的实现,可以使用JavaSE 6平台的JMX服务来管理,但是在Spring集成的环境下,也可以重用这些MBean实现,例如下面是一个典型的配置:xhtml view plain copy <?xml version=1.0 encoding=UTF-8?> <beans xmlns=http:/www.springframework.org/schema/beans xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http:/www.springframework.or

6、g/schema/beans http:/www.springframework.org/schema/beans/spring-beans-2.5.xsd> <bean id=mbServer class=org.springframework.jmx.export.MBeanExporter> <property name=autodetectModeName> <value>AUTODETECT_ALL</value> </property> </bean> <bean name=mydomain:myo

7、bj=MyObjectMBean class=org.shirdrn.spring.jmx.autodetect.MyObject> <property name=id> <value>90000000001</value> </property> <property name=name> <value>shirdrn</value> </property> </bean> </beans> 上面配置中,MBeanExporter会查找本地MBean Server,指定

8、的探测模式autodetectModeName为AUTODETECT_ALL,这也是MBeanExporter的默认值(这个属性完全可以省略,不用配置),无需手动向MBean Server进行注册,便能管理配置的MBean对象“mydomain:myobj=MyObjectMBean”。对于探测模式autodetectModeName属性,Spring提供了4个取值:AUTODETECT_NONE 不启用自动探测,需要手动向MBean Server进行注册,即通过MBeanExporter的beans属性进入注册;AUTODETECT_MBEAN 在当前IOC容器中进行查找MBean组件;AU

9、TODETECT_ASSEMBLER 设置根据MBeanInfoAssembler的策略进行探测;AUTODETECT_ALL 自动探测,是AUTODETECT_MBEAN和AUTODETECT_ASSEMBLER的并集。另外,Spring的MBeanExporter也提供了autodetect属性,取值为true和false,指定对MBean组件的探测行为。 普通Spring Bean管理对于一个普通的Spring Bean,也可以作为MBean来进行管理,Spring可以很好地支持。如下面一个普通的Java类:java view plain copy package org.shirdrn

10、.spring.jmx; import org.apache.log4j.Logger; public class MyJavaObject private static final Logger LOG = Logger.getLogger(MyJavaObject.class); private long id; private String name; public MyJavaObject() super(); public MyJavaObject(long id, String name) super(); this.id = id; this.name = name; publi

11、c long getId() return id; public void setId(long id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; public String show() StringBuffer sb = new StringBuffer().append(id=).append(id).append( , name=).append(name); LOG.info(show()= + sb.toString();

12、 return sb.toString(); 它并没有实现MBean管理接口,可以通过MBeanExporter的beans属性进行注册,配置如下所示:java view plain copy <?xml version=1.0 encoding=UTF-8?> <beans xmlns=http:/www.springframework.org/schema/beans xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http:/www.springframework.org/sch

13、ema/beans http:/www.springframework.org/schema/beans/spring-beans-2.5.xsd> <bean id=mbServer class=org.springframework.jmx.export.MBeanExporter> <property name=beans> <map> <entry key=mydomain:myjavaobj=MyJavaObject value-ref=myobj/> </map> </property> </bea

14、n> <bean name=myobj class=org.shirdrn.spring.jmx.MyJavaObject> <property name=id> <value>90000000001</value> </property> <property name=name> <value>shirdrn</value> </property> </bean> </beans> 因为org.shirdrn.spring.jmx.MyJavaObject

15、没有对应的MBean接口,所以默认情况下,该类中public的成员都会暴露出来,通过MBean Server可以管理。实际上,系统中MBean的某些属性或方法可能不需要暴露给外部进行管理,为了克服这种缺点,Spring提供了基于方法列表和接口定制的功能,可以将你所感兴趣的属性或方法暴露给外部管理。 基于方法列表和接口定制的MBean管理对于上述普通的Java类MyJavaObject,可以通过定制接口和方法列表,来暴露MBean属性或方法。例如,一个方法列表,可以在进行配置的时候指定,如下所示:xhtml view plain copy <bean id=assembler class=

16、org.springframework.jmx.export.assembler.MethodNameBasedMBeanInfoAssembler> <property name=managedMethods value=setId,setName,show /> </bean> 上面通过org.springframework.jmx.export.assembler.MethodNameBasedMBeanInfoAssembler来进行方法列表的设置。而对于接口,可以定义一个接口,如下所示:java view plain copy package org.s

17、hirdrn.spring.jmx.selected.interfaces; public interface SelectedMethodsInterface public long setId(long id); public void setName(String name); public void show(); Spring配置,如下所示:xhtml view plain copy <bean id=assembler class=org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler

18、> <property name=managedInterfaces> <list> <value>org.shirdrn.spring.jmx.selected.interfaces.SelectedMethodsInterface</value> </list> </property> </bean> 上面通过org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler,可以设置一个接口列表,来管理MBean暴露的接

19、口。对于上面两种方式,都得到一个assembler实例,需要将其注入到org.springframework.jmx.export.MBeanExporter中,如下所示:xhtml view plain copy <bean id=exporter class=org.springframework.jmx.export.MBeanExporter> <property name=beans> <map> <entry key=mydomain:javaObj=MyJavaObject value-ref=javaObject /> </

20、map> </property> <property name=assembler ref=assembler /> </bean> 基于注解的MBean管理对于一个普通的Java类,作为MBean需要被管理,可以通过注解指定要暴露的属性和方法,示例如下:java view plain copy package org.shirdrn.spring.jmx.annotation; import org.apache.log4j.Logger; import org.springframework.jmx.export.annotation.Manage

21、dAttribute; import org.springframework.jmx.export.annotation.ManagedOperation; import org.springframework.jmx.export.annotation.ManagedResource; ManagedResource(objectName = annojmx:myjao=AnnotationObject, description = MyJavaAnnotationObject) public class MyJavaAnnotationObject private static final

22、 Logger LOG = Logger.getLogger(MyJavaAnnotationObject.class); private long id; private String name; public MyJavaAnnotationObject() super(); public MyJavaAnnotationObject(long id, String name) super(); this.id = id; this.name = name; ManagedAttribute public long getId() return id; public void setId(

23、long id) this.id = id; public String getName() return name; ManagedAttribute public void setName(String name) this.name = name; ManagedOperation public String show() StringBuffer sb = new StringBuffer().append(id=).append(id).append( , name=).append(name); LOG.info(show()= + sb.toString(); return sb

24、.toString(); 上面ManagedResource表示指定该类的实例作为MBean注册到MBean Server中,然后可以通过对属性和方法分别使用ManagedAttribute和ManagedOperation来指定暴露的属性和方法。有关这些注解的详细内容,可以查阅相关文档。下面是一个基本的配置内容:xhtml view plain copy <?xml version=1.0 encoding=UTF-8?> <beans xmlns=http:/www.springframework.org/schema/beans xmlns:xsi=http:/www.

25、w3.org/2001/XMLSchema-instance xmlns:p=http:/www.springframework.org/schema/p xsi:schemaLocation=http:/www.springframework.org/schema/beans http:/www.springframework.org/schema/beans/spring-beans-2.5.xsd> <bean id=exporter class=org.springframework.jmx.export.MBeanExporter> <property nam

26、e=assembler ref=assembler /> <property name=namingStrategy ref=namingStrategy /> </bean> <bean id=assembler class=org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler> <property name=attributeSource ref=jmxas /> </bean> <bean id=namingStrategy class

27、=org.springframework.jmx.export.naming.MetadataNamingStrategy> <property name=attributeSource ref=jmxas /> </bean> <bean id=jmxas class=org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource /> <bean id=javaObj class=org.shirdrn.spring.jmx.annotation.MyJavaAnn

28、otationObject> <property name=id value=201122121200 /> <property name=name value=shirdrn /> </bean> </beans> 上面使用了Spring的MBeanExporter,可以看到,Spring配置内容相对较多。Spring还提供两种简化配置的方式,一种是,提供了org.springframework.jmx.export.annotation.AnnotationMBeanExporter,可以将上述配置大大简化,等价的配置如下所示:xhtm

29、l view plain copy <?xml version=1.0 encoding=UTF-8?> <beans xmlns=http:/www.springframework.org/schema/beans xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xmlns:p=http:/www.springframework.org/schema/p xsi:schemaLocation=http:/www.springframework.org/schema/beans http:/www.springframew

30、ork.org/schema/beans/spring-beans-2.5.xsd> <bean class=org.springframework.jmx.export.annotation.AnnotationMBeanExporter/> <bean name=myAnnoObject class=org.shirdrn.spring.jmx.annotation.MyJavaAnnotationObject> <property name=id value=201122121200 /> <property name=name value

31、=shirdrn /> </bean> </beans> 另一种是,提供了<context:mbean-export />标签,更加简洁,等价的配置如下所示:xhtml view plain copy <?xml version=1.0 encoding=UTF-8?> <beans xmlns=http:/www.springframework.org/schema/beans xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xmlns:context=http:/www.springframework.org/schema/context xsi:schemaLocation=http:/www.springframework.org/schema/beans http:/www.springframework.org/schema/beans/spring-beans-2.5.xsd http:/www.springframework.org/schema/context http:/www.springframework.org/sc

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1