知识大全 Spring1.2rc1中jmx支持的一些答疑

Posted 属性

篇首语:业精于勤,荒于嬉;行成于思,毁于随。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring1.2rc1中jmx支持的一些答疑相关的知识,希望对你有一定的参考价值。

Spring1.2rc1中jmx支持的一些答疑  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   jmx是什么?    jmx是java下的资源管理规范 泛指的资源可以代表任何对象和事务 如网络 设备 应用程序 在这里 我们特指javabean      jmx可以干什么?    通过jmx 可以在程序运行期改变资源的配置和状态 启动或者停止服务 对应着javabean 就是调用setter设置新的属性值 调用bean上的方法完成某些功能 比如关闭原来的数据库连接 设置一个新的数据库url 然后启动新的数据库连接 这些都是运行期的操作 不需要你停止服务器 当然 你完全可以自己编码 自己实现对bean配置的管理 事实上 如果不使用jmx也可以达到配置的目的 不过使用jmx后 可以作的更专业点     jmx在使用上的结构是怎么样的?    jmx最新的规范是 从使用上来说 jmx分为两部分 服务端和客户端 被管理的资源注册到服务端 服务端可以开放某些协议和接口 客户端通过某种方式连接到服务端 根据协议执行某些操作 使得服务端更改资源的配置和状态     当然 上面这种说法是很粗糙的 具体的细节可以查看jmx规范     spring和jmx集成有什么作用?    spring的最主要功能是进行ioc装配 而这个装配相对来说是静态的 一旦程序启动就需要通过其他手段来更改bean的属性 jmx就是运行时改变配置的一种方法      spring是怎么集成jmx的?    spring对jmx的集成体现在两个方面    一方面 如果你处于编写客户端代码的情况 spring提供了 springframework jmx access 包 使得你可以很容易的同Server连接实现管理代码     另一方面 spring提供了 springframework jmx export 包 使得你不用编写任何代码 就可以将spring下管理的bean作为jmx资源注册到server中 下面我们只讨论export      jmx中经常提到的MBean是什么?    MBean就是被jmx管理的资源 一般有两种类型的MBean 标准的和动态的     标准类型的MBean最简单 它能管理的资源(包括属性 方法 时间)必须定义在接口中 然后MBean必须实现这个接口 它的命名也必须遵循一定的规范 例如我们的MBean为Hello 则接口必须为HelloMBean     动态MBean必须实现javax management DynamicMBean接口 所有的属性 方法都在运行时定义     Spring的export 支持那种类型的bean?我的javabean必须符合jmx规范么?    Spring支持把任何一种bean作为MBean 如果这个javabean本身就是按照jmx规范设计的MBean spring会简单的把他注册到jmx server中 如果这个bean不是MBean 那么spring会动态创建一个MBean(事实上是一个model MBean) 再把原先的这个bean设置到这个新创建的MBean jmx server通过这个MBean间接的管理对应的资源      如果不用spring 我可以使用jmx么?    当然可以 不过使用spring 你可以简单的和现有系统集成 你不需要编写一行代码 就能将你的应用建立在jmx基础上     你说的都很好 我也决定使用spring对jmx的集成了 那么我怎么开始?    首先你要下载spring 版本 接着要找到jmx的某个实现 如果你使用的是jdk 那么你已经内置了jmx功能 如果你使用的是更低的版本 那么你需要下载一个jmx的实现 一般有两个选择 下载sun的参考实现或者找一个更 专业 的实现 比如mx j     下面我以sun参考实现为例子     spring中怎么配置jmx export?    java代码:    <?xml version= encoding= UTF ?>  <!DOCTYPE beans PUBLIC //SPRING//DTD BEAN//EN beans dtd >    <beans>  <bean id= jmxMBeanExport class= springframework jmx export MBeanExporter >  <property name= server >  <bean class= javax management MBeanServerFactory factory method= createMBeanServer />  </property>  <property name= beans >  <map>  <entry key= MyAgent:name=adapter port= >  <bean class= m HtmlAdaptorServer init method= start >  <property name= port >  <value> </value>  </property>  </bean>  </entry>    </map>  </property>  </bean>    </beans>    将这个applicationContext启动起来 然后在浏览器中打//localhost: / 你应该能看到一个jmx的管理界面     配置文件中的HtmlAdaptorServer有双重身份 首先他是一个MBean 被jmx server管理 其次他对外打开了一个接口 可以通过他管理jmx 我们称这种MBean为Protocol adapters 或者connectors     事实上 HtmlAdaptorServer的是放在jmxtools jar中的 你也可以在其他jmx实现上(比如mx j的Server)也使用这个Adaptor 这就是使用jmx的优势 有一个统一的管理平台 可以使用任何一种和标准兼容的管理工具     我如何将自己的bean export出来?    很简单 只需要多一行entry就可以了 比如java代码:    <entry key= MyAgent:name=hello >  <ref bean= hello />  </entry>    Spring怎么知道要把我的bean中的哪些属性和方法暴露出来?    Spring其实不知道 如果你不作任何配置 那么他会采用一种很极端的方式所有的getter/setter都作为jmx中的属性 所有的public方法 都作为jmx中的方法 但是从Object下继承来的会被屏蔽 所以 你不会在jmx中看到toString这个方法     事实上 spring是通过MBeanInfoAssembler来获取资源信息的 默认情况下他用的是SimpleReflectiveMBeanInfoAssembler 如果你有定制的要求 那么可以用其他的MBeanInfoAssembler     我看到了 springframework jmx export annotation 这个好像是jdk annotations 用的 我也必须使用jdk 么?     springframework jmx export annotation下的这些类是确实配合annotation用的 上面说过 如果要定制暴露给jmx中的属性和方法 那么需要使用其他的MBeanInfoAssembler 其中一种方法是利用annotations 不过如果你不用到annotation 就不需要使用jdk annotations只是一个可选项     jmx和spring不能作什么?    即使你用了jmx和spring 也有很多是他们不能完成的功能 比如他们不能直接帮助你向老板要求加薪 不能阻止某些国家对海峡的干涉 更不能协助人类探索火星……    好了 回到正题 jmx和spring只是协助你完成某些功能 而且这些功能相对来说还是很有限的 首先jmx中可被管理的属性只能是一些简单类型 比如数字或者字符 其次jmx也不能自动帮你把修改后的属性保存起来 所以如果你自己不写特定的代码 下次程序启动后还是原始的配置 不过不管怎么说 有了spring和jmx 毕竟 生活更美好了些 cha138/Article/program/Java/ky/201311/27902

相关参考

知识大全 使用Tomcat的jmx服务

使用Tomcat的jmx服务  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Tomcat可以使用

知识大全 spring和jmx

  <?xmlversion=encoding=UTF?>  <beansxmlns=  xmlns:xsi=instance  xsi:schemaLocation=beansxs

知识大全 使用JMX监控应用程序内、外部的状况

使用JMX监控应用程序内、外部的状况  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  自WebLo

知识大全 Java SE 6 新特性: JMX 与系统管理

JavaSE6新特性:JMX与系统管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  年底Sun

知识大全 MC4J远程监测Tomcat集群-JMX助Tomcat2(图)

MC4J远程监测Tomcat集群-JMX助Tomcat2(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

知识大全 MC4J远程监测Tomcat集群-JMX助Tomcat1(图)

MC4J远程监测Tomcat集群-JMX助Tomcat1(图)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来

排污收费制度答疑

1、排污费征收的对象是谁?答复:《排污费征收使用管理条例》规定的征收对象,由原《征收排污费暂行办法》规定“超标准排放污染物的企业事业单位”,进一步明确为“直接向环境排放污染物的单位和个体工商户”。2、

排污收费制度答疑

1、排污费征收的对象是谁?答复:《排污费征收使用管理条例》规定的征收对象,由原《征收排污费暂行办法》规定“超标准排放污染物的企业事业单位”,进一步明确为“直接向环境排放污染物的单位和个体工商户”。2、

“虫寻之宝”甲壳素健康法答疑

*我到医院里检查,医生说我的血液中胆固醇偏高,血液黏稠,血脂高,服用“虫寻之宝”甲壳素管不管用?答:“虫寻之宝”甲壳素降血脂主要是通过螯合作用发挥效能的,它本身有带正电的极性基因,能螯合多余脂类排出体

答疑五则

我听说国外流行一种PC肌肉法,能够促进和提高自己的性高潮能力,而且不分男女均有同样的功效。这种方法真有效吗?湖南刘云答:PC肌肉也可称为盆膈肌。女性的盆膈肌位于耻骨与尾骨间,而男性的盆膈肌则位于肛门和