- 浏览: 7325986 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
本文采用Spring JMX 和MX4J开发的JMX,
备注必须的类库为:ms4j-tools-3.0.1.jar,mx4j-3.0.2.jar
具体要实现JMX MBean的 注解类:
package com.easyway.jboss.jmx.spring.service; import org.springframework.jmx.export.annotation.ManagedAttribute; import org.springframework.jmx.export.annotation.ManagedOperation; import org.springframework.jmx.export.annotation.ManagedOperationParameter; import org.springframework.jmx.export.annotation.ManagedOperationParameters; import org.springframework.jmx.export.annotation.ManagedResource; /** * 采用Spring的注解方式实现JMX的开发 * @author longgangbai *正如你所见,除了元数据定义的语法外只有很少的变动。这个方法在后台启动时会有一点缓慢, *因为要在类中使用Commons Attributes转换JDK5.0的注解。不过,这仅仅是一次性的开销并 *且JDK5.0的注解为你带来编译时检查的好处。 * */ @ManagedResource public class JMXAnonationMBeanManager { private int clientStatus; @ManagedOperation(description = "pause a single proccess") @ManagedOperationParameters( { @ManagedOperationParameter(name = "Name of proccess instance", description = "Mandatory") }) public void pause(String n) { System.out.println("pause"); } @ManagedOperation(description = "shut down the proccess") public void monitor() { System.out.println("shutting down…"); } public void publicMessage() { System.out.println("public Message to monitor server"); } @ManagedAttribute(description = "client status") public int getClientStatus() { return clientStatus; } @ManagedAttribute(description = "client status") 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" 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"> <!-- 要在管理接口定义中使用JDK5.0的注解,Spring提供了一个注解集镜像到Commons Attribute参数类和一个JMX的实现来支持JmxAttributeSource, AnnotationsJmxAttributeSource并允许MbeanInfoAssembler读取它们。 --> <!-- 创建相关的Bean对象并设置参数 --> <bean id="monitorMBeanManager" class="com.easyway.jboss.jmx.spring.service.JMXAnonationMBeanManager"/> <!-- 创建一个MBeanServer对象, --> <bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"> </bean> <bean id="jmxAttributeSource" class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource"/> <bean id="assembler" class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler"> <property name="attributeSource"> <ref local="jmxAttributeSource"/> </property> </bean> <bean id="httpAdaptor" class="mx4j.tools.adaptor.http.HttpAdaptor"> <property name="processor"> <bean id="xsltProcessor" class="mx4j.tools.adaptor.http.XSLTProcessor"/> </property> <property name="port"> <value>8000</value> </property> </bean> <!--一个由 MBeanServerFactoryBean 创建的 MBeanServer 实例,它通过属性server提供给了 MBeanExporter。 当你提供了你自己的 MBeanServer 实例后,MBeanExporter 将使用该实例,且不再查找一个运行中的 MBeanServer。 设置相关的Bean的暴露为JMX 关系最大的是 exporter Bean。beans 属性使得 MBeanExporter 知道要将哪个Bean输出到JMX的 MBeanServer 上去。 缺省配置中,beans 里的 Map 中的条目的key被用作相应条目值所引用的Bean的 ObjectName。 --> <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter"> <property name="assembler"> <ref local="assembler"/> </property> <property name="beans"> <map> <entry key="bean:name=monitorMBeanManager" value-ref="monitorMBeanManager"> </entry> <entry key="mx4j:name=HttpAdaptor" value-ref="httpAdaptor"> </entry> </map> </property> <property name="server" ref="mbeanServer"/> </bean> </beans>
测试代码如下:
package com.easyway.jboss.jmx.spring.service; import java.io.IOException; import mx4j.tools.adaptor.http.HttpAdaptor; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * 采用Mx4j测试JMX * @author longgangbai * */ public class JBossJMXServiceClient { public static void main(String[] args) throws IOException { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext-jmx-annotation.xml"); HttpAdaptor httpAdaptor=(HttpAdaptor)ctx.getBean("httpAdaptor"); httpAdaptor.start(); } }
在浏览器中输入:
说明:applicationContext.xml配置文件中已经设置httpAdaptor端口号为8000,运行JBossJMXServiceClient 后,通过web浏览器登录http://localhost:8000 ,点击bean:name=monitorMBeanManager进入页面,就可以访问或者通过暴露的接口操作JMXAnonationMBeanManager 了。
发表评论
-
【转】在项目中使用多个数据源-多sessionFactory方案
2013-05-10 16:30 3117适用范围:适合SSH架构访问多个数据库, ... -
【转】使用spring的动态路由实现数据库负载均衡
2013-03-17 22:57 3293使用spring的动态路由实现数据库负载均衡 系统中 ... -
【转】spring 数据库读写分离
2013-03-17 22:56 2801什么是数据库的读写分离 数据库的读写分离简单的说是把对数据 ... -
[转]Spring+iBatis+JOTM实现JTA事务
2013-03-17 22:51 3050Spring+iBatis+JOTM实现JTA事务 ... -
Spring 和Axis2整合相关那些事
2012-12-29 12:58 10413Axis2优劣: 现在用axis2开发一个webse ... -
【转】JAVA并发容器代码随读
2012-12-06 15:29 2943转载自 http://rdc.taobao.c ... -
Spring3.04和Junit4
2011-11-27 18:15 4385在Spring3.x以上必须采用 ... -
Spring加载属性文件的扩展
2011-08-22 12:21 3019在项目中一个属性文件配置信息,提供给数据连接信息 ... -
Brap和Spring整合(简单权限验证)
2011-07-26 10:31 1380在使用Spring的发 ... -
Quartz的任务的临时启动和暂停和恢复
2011-07-16 10:18 40183在项目中需要手动启停某些服务,那么需要有一个控 ... -
Quartz中定时调度EJB3.0服务
2011-07-13 22:25 2932在quartz2.0中只支持EJb2.0的服务 ... -
Quartz中定时调度EJB2.0服务
2011-07-13 22:12 2179在Quartz2.0中提供支持EJB2.0 ... -
Quartz的简单使用
2011-07-13 22:05 9947最近工作需要学习quartz,那么必须首先了解三个概念:调度器 ... -
Brap 远程访问调用 和Spring整合(二)
2010-12-08 14:52 2000Brap和 Spring 整合使用如 ... -
闲着没事Hessian开发WebService的总结(二)
2010-12-07 20:30 4024在Spring和Hessian整合中,以前 ... -
Spring JMX的学习总结(三) 基于注释的JMX的使用
2010-12-03 17:26 3357具体实现JMX的注释的类: package c ... -
Spring JMX的总结学习(一)基于标准接口的JMX
2010-12-03 17:21 3775在Spring中采用JMX标准形式的,开发相关的Spr ... -
Spring JMS的开发应用--自定义消息转换器的使用(四)
2010-12-03 01:37 2506在Spring JMS、中可以通过实现Me ... -
Spring JBOSSMQ JMS的开发应用(三)
2010-11-30 20:11 2339如果用过JMS的话,会发现它类似写JD ... -
Spring中AOP实现EHCache的整合中采用SpringModule结合(二)
2010-09-01 19:22 2442在Spring中通过EHCa ...
相关推荐
为了更深入地学习Spring JMX,可以参考压缩包中的"SpringJMX.pdf"文件。这份文档通常会详细讲解Spring JMX的配置、MBean的创建、MBeanServer的使用,以及如何在Spring应用中集成和利用JMX进行监控和管理。通过阅读这...
注解方式则是Spring提供的简化方式,可以直接在Bean上使用`@ManagedResource`,在属性和方法上使用`@ManagedAttribute`和`@ManagedOperation`,Spring会自动处理MBean的注册和暴露。 4. **发布通知,处理通知及配置...
3. 使用Spring的JMX支持:Spring提供了`PlatformMBeanServerBeanPostProcessor`,它可以自动检测带有MBean注解的bean并将其注册到MBean服务器。 4. 连接和管理:通过JConsole或其他JMX客户端工具,如VisualVM或JMC...
通常,我们需要定义一个bean,该bean实现了MBean接口或者使用了`@ManagedResource`注解,使得它成为JMX管理的对象。例如,你可能会看到如下配置: ```xml <jmx:managed /> ``` 这里的`jmx:managed`标签表示将`...
2. **定义MBeans**:MBeans可以通过两种方式创建:使用标准的`@ManagedResource`注解标记Spring Bean,或者通过实现`MBean`接口。使用注解的方式更加便捷,因为它可以自动暴露属性和操作。 3. **注册MBeans**:...
**JMX(一)——MBean Server** Java Management Extensions (JMX) 是Java平台上的一个标准,用于管理和监控应用程序、设备...通过结合Spring框架,开发者可以更轻松地在应用中集成JMX功能,实现对应用的全方位管理。
Spring支持JMX,可以让你通过JMX接口管理Spring容器中的bean,实现远程监控和管理。 下面我们将详细探讨JMX和Spring的结合使用: 1. **JMX基础**: - **MBeans**:JMX的核心组件,是可管理的Java对象,代表了被...
Spring的`MBeanExporter`和`@ManagedResource`注解是实现这一目标的关键。 综上所述,JMX是一个强大的工具,它为Java应用程序提供了全面的管理能力。通过理解并掌握JMX的核心概念和技术,开发者可以更好地监控和...
Spring的`@ManagedResource`注解可以自动将bean暴露为MBean,而`@ManagedAttribute`和`@ManagedOperation`可以分别标记可管理的属性和操作。 9. **JMX与OSGi的集成**:在OSGi环境中,可以通过实现特定的服务接口...
- **AOP实现**:Spring支持基于XML和注解的方式定义AOP切面,并提供了强大的切入点表达式语言。 - **@AspectJ支持**:Spring 2.5还支持使用@AspectJ注解编写切面类,这种方式更加灵活。 #### 六、数据访问支持 - **...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案 115 3.2.3 工作原理 116 3.3 访问...
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 请求生命中的...
3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案 115 3.2.3 工作原理 116 3.3 访问...
通过本次讨论,我们深入了解了**软件监控与管理**的重要性,学习了**JMX**的基本概念和发展历程,并探讨了不同类型的MBeans以及它们的应用场景。特别是结合**Spring**框架的使用,让JMX的管理和配置变得更加简单高效...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
在本文中,我们将详细探讨Spring Core 4.3.15.RELEASE版本中的关键概念、功能和实现机制。 1. **依赖注入(Dependency Injection, DI)** - 依赖注入是Spring的核心特性之一,它允许开发者在运行时将对象之间的...