JMX学习笔记(三):MXBean
来源:互联网 发布:oracle数据库建表空间 编辑:程序博客网 时间:2024/05/18 20:50
MXBean
MXBean也是JMX MBean的一种,与MBean的区别是:MXBean引用一组预定义的数据类型,通过这种方式,MBean可以被任何形式的客户端使用,包括远程客户端。MXBean提供一种方便的方式将相关值打包在一起,不需要客户专门配置为处理包。
我个人比较浅显的理解是,MBean与MXBean的区别是:定义MBean接口实现类的属性时,MBean只支持Java的八种基本数据和一些简单的引用类型,如String。不能支持复杂数据类型的关联映射。而MXBean接口实现类定义属性时,支持基本数据类型,引用数据类型,和自定义的数据类型。
MBean与MXBean编写规则非常相似,同样是定义xxxMXBean interface,实现xxxMXBean接口;在编写MXBean接口时,也可以不以MXBean结尾,而在是接口上使用@MXBean注释,表示接口为MXBean接口。
例:以MXBean方式编写程序,在 MXBean实现类中定义属性为引用类型:
#Step 1:定义MXBean接口
package com.jmx.demo3;import java.util.List;public interface LibrariesMXBean {public int getTotal();public List<Book> getBookList();public Book getBook(int index);public void clearBookList();}
#Step 2 :编写一个普通类Book
package com.jmx.demo3;import java.beans.ConstructorProperties;public class Book {private int index;private String title;private int price;private String author;@ConstructorProperties({ "index", "title", "price", "author" })public Book(int index, String title, int price, String author) {this.index = index;this.title = title;this.price = price;this.author = author;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}}
#Step 3: 编写MXBean的实现类Libraries
package com.jmx.demo3;import java.util.List;public class Libraries implements LibrariesMXBean {private static List<Book> bookList;public Libraries(List<Book> bookList) {this.bookList = bookList;}@Overridepublic List<Book> getBookList() {return bookList;}@Overridepublic int getTotal() {return bookList.size() ;}@Overridepublic void clearBookList() {bookList.clear();}@Overridepublic Book getBook(int index) {if(bookList.size() > 0){return bookList.get(index);}return null;}}
#Step 4: 创建MBeanServer,并注册MXBean
package com.jmx.demo3;import java.lang.management.ManagementFactory;import java.util.ArrayList;import java.util.List;import javax.management.MBeanServer;import javax.management.MBeanServerFactory;import javax.management.ObjectName;public class Main {public static void main(String[] args) throws Exception {//MBeanServer mbs = MBeanServerFactory.createMBeanServer();MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();ObjectName mxbeanName = new ObjectName("com.jmx.demo3:type=Libraries");List<Book> bookList = new ArrayList<Book>();bookList.add(new Book(1, "Thinking in Java", 99, "Bruce Eckel"));bookList.add(new Book(2, "Effective Java", 88, "Joshua Bloch"));bookList.add(new Book(3, "Core java", 42, "Cay S. Horstmann"));Libraries libraries = new Libraries(bookList);mbs.registerMBean(libraries, mxbeanName);System.out.println("Waiting forever...");Thread.sleep(Long.MAX_VALUE);}}
运行Main程序,打开Jconsole,如下图:
注意:如果在上面的程序中将接口定义为MBean的方式,在MBean实现类中定义bookList属性,会出现如下错误
总结:MXBean是MBean的一种,比MBean支持更多属性数据类型的定义,其它我还没搞清楚。
0 0
- JMX学习笔记(三)-MXBean
- JMX学习笔记(三):MXBean
- JMX学习笔记(三)-MXBean
- JMX : MXBean
- jmx学习笔记三
- JMX 平台MXBean
- JMX 平台MXBean
- JMX学习笔记一
- jmx学习笔记一
- jmx 学习笔记二
- JMX学习笔记(一)
- JMX学习笔记(一)
- JMX学习笔记-MBean
- mxbean
- 【JMX】JMX学习笔记(一)-MBean
- JMX学习笔记(四) JMX RMI
- JMX学习笔记(一)-MBean
- JMX学习笔记(二)-Notification
- 2013年进口的乳品不合格
- android textview xml 属性设置
- 一般电脑丢失文件怎么才能迅速恢复丨迅龙数据恢复文件丨
- android如何杀掉守护进程——干掉小米手机助手
- websphere服务器cpu使用率较高原因定位分析
- JMX学习笔记(三):MXBean
- 基于Qt的类QQ气泡聊天的界面开发
- 警惕:利用Dropbox链接散播的恶意软件
- SVN Application
- hasOwnProperty方法的使用
- MD5的加密和解密(总结)
- NodeJS应用设成随系统启动而自动运行
- 数据结构之进阶排序(希尔排序、快速排序、归并排序)
- ubuntu下连接mysql时报错:Lost connection to MySQL server at 'reading initial communication packet', system