Spring 2.x jmx 及应用(2)mbean注册方式
spring提供了灵活的MBean方式
除了之前介绍过的Annotation
还有Metadata方式,类似于Annotation
这种方式在创建javadoc时候会给予警告但不会影响doc的创建
package com.xmlasia.spring.test.jmx;/** * @@org.springframework.jmx.export.metadata.ManagedResource * (description="My Managed Bean",objectName="spring:bean=test") * */public class CommentMBeanManager {private int clientStatus;/** * @@org.springframework.jmx.export.metadata.ManagedOperation * (description="pause a single proccess") * */public void pause(String n) {System.out.println("pause");}/** * @@org.springframework.jmx.export.metadata.ManagedOperation * (description="shut down the proccess") */public void monitor() {System.out.println("shutting down...");}public void publicMessage() {System.out.println("publicMessage");}/** * @@org.springframework.jmx.export.metadata.ManagedAttribute * (description="client status") */public int getClientStatus() {return clientStatus;}public void setClientStatus(int clientStatus) {this.clientStatus = clientStatus;}}<?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/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- mbean --><bean id="mbeanManager"/><!-- JMX configuration --><bean id="mbeanServer"/></property></bean><bean id="assembler"ref="attributeSource" /></bean><bean id="mBeanExporter"ref="mbeanServer" /><property name="assembler" ref="assembler" /> <property name="beans"> <!-- 将mbean注册到mBeanExporter --> <map> <entry key="mbean:name=testBean" value-ref="mbeanManager" /> </map> </property> </bean></beans>
<bean id="mBeanExporter"ref="mbeanServer" /><property name="assembler" ref="assembler" /><property name="autodetect" value="true" /></bean>
<?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/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><!-- mbean --><bean id="mbeanManager"/><!-- JMX configuration --><bean id="mbeanServer"ref="mbeanServer" /><property name="assembler" ref="assembler" /><property name="beans"><!-- 将mbean注册到mBeanExporter --><map><entry key="mbean:name=testBean"value-ref="mbeanManager" /></map></property></bean></beans>
<bean id="mBeanExporter" ref="mbeanServer"/> <property name="assembler" ref="assembler"/> <property name="registrationBehaviorName" value="REGISTRATION_REPLACE_EXISTING"/> </bean>