接着上一篇 “原生态连接jmx”的例子。
上一篇中,发布一个MBean还要实现接口,还要写一堆东西比较麻烦。如果使用spring的话,
spring会帮我们吧这些都做掉,之后的代码就变得异常简洁。
在使用了spring之后唯一需要的就是
一个main函数,
一个配置文件,
一个发布的MBean的POJO。
代码分别如下:
MBean的POJO:
/**
* @author guoliang
* @version 创建时间:2010-11-14 下午03:50:24 类说明
*/
public class MyHelloMBean {
private static int count;
public static synchronized void inc() {
count++;
}
public static synchronized int cnt() {
return count;
}
public String testMethod(String from) {
return "hello world" + from;
}
private String testPrivateMethod() {
System.out.println("testPrivateMethod");
return "private";
}
}
对应的jmx的配置文件
spring-jmx.xml。有兴趣的话可以看看源码,其实就是spring帮忙生成了MBeanInfo的信息。
具体可以参见:AbstractMBeanInfoAssembler的getMBeanInfo方法。
<?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"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire="byName">
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"
lazy-init="false">
<property name="beans">
<map>
<entry key="bean:name=guoliangtest" value-ref="helloMBean" />
</map>
</property>
</bean>
<bean id="helloMBean" class="com.taobao.yzn.study.spring.jmx.MyHelloMBean"></bean>
</beans>
对应的main函数:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author guoliang
* @version 创建时间:2010-11-14 下午03:50:48 类说明
*/
public class JmxTestMain {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-jmx.xml");
try {
Thread.sleep(Integer.MAX_VALUE);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行该main函数,跟上一篇类似,需要在eclipse的启动参数里面加上那个那一句话:
-Dcom.sun.management.jmxremote=JmxTestMain
分享到:
相关推荐
JMX集成到spring中,并提供了一个rmi远程连接的配置文件
1.2.2 使用Spring Initializr初始化Spring Boot项目 10 1.3 小结 18 第2章 开发第一个应用程序 19 2.1 运用Spring Boot 19 2.1.1 查看初始化的Spring Boot新项目 21 2.1.2 Spring Boot项目构建过程解析 ...
6.8.4. 在Spring应用中使用AspectJ Load-time weaving(LTW) 6.9. 其它资源 7. Spring AOP APIs 7.1. 简介 7.2. Spring中的切入点API 7.2.1. 概念 7.2.2. 切入点实施 7.2.3. AspectJ切入点表达式 7.2.4. ...
6.8.1. 在Spring中使用AspectJ来为domain object进行依赖注入 6.8.1.1. @Configurable object的单元测试 6.8.1.2. 多application context情况下的处理 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来...
9.spring-instrument-tomcat-4.1.1.RELEASE.jar Spring对tomcat连接池的集成 10. spring-jdbc-4.1.1.RELEASE.jar 对jdbc简单封装 11.spring-jms-4.1.1.RELEASE.jar 简单封装jms api接口 jms: Java消息服务(Java ...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
用Spring连接到MongoDB 9.3.1。使用基于Java的元数据注册Mongo实例 9.3.2。使用基于XML的元数据注册Mongo实例 9.3.3。MongoDbFactory接口 9.3.4。使用基于Java的元数据注册MongoDbFactory实例 9.3.5。使用基于XML的...
Spring Framework 开发参考手册 Rod Johnson Juergen Hoeller Alef Arendsen Colin Sampaleanu Rob Harrop Thomas Risberg Darren Davison Dmitriy Kopylenko Mark Pollack ...19.2. 使用Spring JMS ...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
1.7 使用Spring的FactoryBean创建Bean 27 1.7.1 问题 27 1.7.2 解决方案 27 1.7.3 工作原理 27 1.8 使用工厂Bean和Utility Schema定义集合 29 1.8.1 问题 29 1.8.2 解决方案 29 1.8.3 工作原理 29 ...
1.2.2 使用Spring Initializr初始化Spring Boot项目 10 1.3 小结 18 第2章 开发第一个应用程序 19 2.1 运用Spring Boot 19 2.1.1 查看初始化的Spring Boot新项目 21 2.1.2 Spring Boot项目构建过程...
1.7 使用Spring的FactoryBean创建Bean 27 1.7.1 问题 27 1.7.2 解决方案 27 1.7.3 工作原理 27 1.8 使用工厂Bean和Utility Schema定义集合 29 1.8.1 问题 29 1.8.2 解决方案 29 1.8.3 工作原理 29 ...
12.4使用jmx管理springbean 12.4.1将springbean输出为mbean 12.4.2远程访问mbean 12.4.3处理通知 12.5小结 第三部分spring客户端 第13章处理web请求 13.1开始springmvc之旅 13.1.1请求生命中的一天 13.1.2...
12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为MBean 12.4.2 远程访问MBean 12.4.3 处理通知 12.5 小结 第三部分 Spring客户端 第13章 处理Web请求 13.1 开始Spring MVC之旅 13.1.1 请求生命中的...
12.4 使用JMX管理Spring Bean 12.4.1 将Spring Bean输出为MBean 12.4.2 远程访问MBean 12.4.3 处理通知 12.5 小结 第三部分 Spring客户端 第13章 处理Web请求 13.1 开始Spring MVC之旅 13.1.1 请求生命中的...
第十章 使用Spring快速实现Web开发 10.1 Spring介绍 10.1.1 Spring简介 10.1.2 下载Spring 10.1.3 配置Spring 10.2 Spring核心思想 10.2.1 反向控制(IoC) 10.2.2 依赖注入(DI) 10.3 利用Spring在JSP页面输出...
•连接选项:HTTP | JMX •监控:度量|审计| HTTP跟踪|过程 •Spring引导应用部署:云部署| OS服务 •构建工具插件:Maven | Gradle •附录:应用程序属性|配置元数据|自动配置类|测试自动配置注释|可执行jar |依赖版本
第十章 使用Spring快速实现Web开发 10.1 Spring介绍 10.1.1 Spring简介 10.1.2 下载Spring 10.1.3 配置Spring 10.2 Spring核心思想 10.2.1 反向控制(IoC) 10.2.2 依赖注入(DI) 10.3 利用Spring在JSP页面输出...
分页处理:传递Page参数或继承Page的对象参数druid数据源连接池;配置druid数据源监视: ehcache二级缓存配置xml注解ftp服务; Excel相关处理; jmx监控MBean测试; ArchUnit参数验证;跨域处理; shiro权限控制;...
第十章 使用Spring快速实现Web开发 10.1 Spring介绍 10.1.1 Spring简介 10.1.2 下载Spring 10.1.3 配置Spring 10.2 Spring核心思想 10.2.1 反向控制(IoC) 10.2.2 依赖注入(DI) 10.3 利用Spring在JSP页面输出...