JMX学习笔记(三):MXBean

Linux音频处理实战:从MP3解码到ALSA播放的完整流程解析 本文详细解析了Linux环境下从MP3文件解码到通过ALSA播放音频的完整实战流程。文章深入剖析了MP3文件结构、PCM原始音频数据格式,并提供了使用ffmpeg/mpg123解码、以及利用ALSA库进行C语言编程播放的实用代码示例,帮助开发者彻底掌握Linux音频处理的核心链路。 阅读详情

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;
	}

	@Override
	public List<Book> getBookList() {
		return bookList;
	}

	@Override
	public int getTotal() {
		return bookList.size() ;
	}

	@Override
	public void clearBookList() {
		bookList.clear();
	}

	@Override
	public 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支持更多属性数据类型的定义,其它我还没搞清楚。

【Unity-UGUI控件全面解析】| Layout自动布局组件详解 UGUI中有个自动布局组件Auto Layout,主要包含下面几个模块(点击可进入官方文档下查看描述): 自动布局 布局元素 (Layout Element) 水平布局组 (Horizontal Layout Group) 垂直布局组 (Vertical Layout Group) 网格布局组 (Grid Layout Group) 内容大小适配器 (Content Size Fitter) 自动布局系统 基于布局元素和布局控制器的概念。一个布局元素是具有矩形变换以及其他可选组件的游戏对象。布局元素对自身 阅读详情

相关推荐

基于Stigmergy的团队LLM wiki协作机制与FastAPI工程实践

大语言模型驱动的知识管理正在改变个人笔记与团队文档的维护方式,但当多人共同维护一个维基时,如何避免版本覆盖、上下文丢失和幻觉污染成为核心挑战。Stigmergy这一源自生物学的协作机制提供了新思路:通过共享环境中的痕迹(如评论、标记、修订历史)实现异步协作,无需实时沟通或中心协调者。本文将原理落地为可工程化的系统,设计Page、Revision、Trace三大实体,并结合向量索引与LLM审查流程,最终用FastAPI与SQLite搭建一个最小可运行原型。从白蚁筑巢到团队知识库,Stigmergy让每个参与者

weixin_34174322的博客 365

JMX、MBean、MXBean、MBeanServer 入门

通俗点说:JMX 是一个 JDK 提供的框架,用来管理检测 Java 程序,提供了对 Java 应用程序和 JVM 的监控和管理功能。 JMX 通过 MBean、MXBean、MBeanServer 来实现对 java 程序的管理

weixin_42132143的博客 5306

主成分分析(PCA)和局部线性嵌入(LEE)原理详解

从KNN谈“维度灾难”,介绍线性降维PCA和局部线性嵌入LLE 这两种降维方法的原理

superzzx0920的博客 5617

Java管理扩展MBean之MXBean

MXBeans的主要思想是:MXBean接口java.lang.management.MemoryMBean 中引用的诸如java.lang.managementMemoryUsage类型,该类型映射一组称之为开放类型(定义为javax.management.openbean包中)的类型。每个接口中的方法定义属性或者操作。getQueueSample操作返回QueueSample类的实例,该实例由java.util.Queue的peek方法和size方法和java.util.Data实例构造而成。

x526967803的博客 1418

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4699

手写数字数据集MNIST

文章目录一、 简介二、下载MNIST数据集训练集和测试集的长度输出图像数据和标记数据的形状显示手写数字图片输出数据集中的第1个样本显示图片 一、 简介 MNIST是一个非常有名的手写体数字识别数据集(手写数字灰度图像数据集),在很多资料中,这个数据集都会被用作深度学习的入门样例。 MNIST数据集是由0到9的数字图像构成的。训练图像有6万张,测试图像有1万张。MNIST数据集是NIST数据集的一个子集,它包含了60000张图片作为训练数据,10000张图片作为测试数据。由250个不同的人手写而成。 每一张图

qq_37289115的博客 1万+

JMX 平台MXBean

JAVA 平台MXBean 是一种托管 Bean,它符合 JMX Instrumentation Specification,提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。JAVA 平台MXBean:ClassLoadingMXBean      用于 Java 虚拟机的类加载系统的管理接口。 CompilationMXBean       用于 Jav...

nomoney_boy的专栏 500

RK3588 C-PHY摄像头驱动升级踩坑记:从‘Only CSI2 supported’报错到成功取流

本文详细记录了在RK3588平台上调试C-PHY摄像头驱动的全过程,从‘Only CSI2 supported’报错分析到成功取流。内容涵盖C-PHY与CSI-2协议差异、SDK版本对比、V4L2框架下的bus-type解析机制,以及硬件排查与寄存器调优实战经验,为嵌入式Camera驱动工程师提供宝贵参考。

weixin_42522374的博客 125

Spring 5 高级教程读书笔记——第2章

学习阅读《Spring 5 高级编程》第2章的读书笔记,对于其中涉及到的一些术语进行了查询和记录

u014463396的博客 438

基于表面肌电信号sEMG的手势识别——以Ninapro DB1数据集使用CNN网络识别为例

本文实验采用公共数据集Ninapro。该数据集数据量大,采集的动作丰富,每个单位数据集里面包括表面肌电信号、加速度计、手部运动学和动态数据等,记录了67名完整受试者和11名进行了至少50 次手部运动的截肢者的数据。NinaproDB1数据集包括27名完整的受试者(7 名女性和20名男性,其中2个左手和25 个右手) 的肌电信号。信号采集频率为100Hz。

树下一朵云的博客 2296

debian mirrors 镜像源 riscv 64 赛昉 星光 starfive vf2 InRelease‘ doesn‘t support architecture ‘riscv64‘

debian mirrors 镜像 riscv 64 赛昉 星光2 starfive vf2 InRelease' doesn't support architecture 'riscv64'

qq_29758759的博客 1259

【JMX】JAVA监控的基石

一文快速讲解一切JAVA监控的基石——JMX。

BugMan的博客 4137

企业合规审查系统开发实战:基于知识图谱与深度学习的智能引擎构建(附完整Python代码)

动态合规监测:实时追踪法规变化并更新知识库智能合约审计:区块链智能合约的自动合规检查跨域知识融合:整合财务、法律、业务多维度数据可解释性增强:基于Attention机制生成合规审查依据。

理论都是虚的,代码才是王道。 456

JMX学习笔记(三)-MXBean

在MBean中有只要遵循以下两个规则,我们就可以在jconsole中动态的改变MBean中的属性值 1. JMX中要定义接口必须以xxxMBean的规范定义 2. 得有类实现xxxMBean接口   例如:   package com.haitao.jmx.mxbean; /** * Server Configure MBean * * @author ha...

:) 319

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

JMX的快速入门与使用+使用JMX Exporter监控+集成OpenTelemetry

文章目录JMX应用场景JMX使用定义一个MXBean实现该MXBean将MXBean注册到JMX中去使用Jconsole监控JMX官方文档源码地址 JMX应用场景 用来监控JVM内各种对象的信息。一个经典场景就是,某一天我们忽然被前方告知,业务大面积瘫痪,这时经过排查,发现由于bug导致数据库连接使用完了没有被释放,导致后续业务没有可用的数据库连接而超时报错。 假如我们使用JMX来监控我们系统中数据库连接池的信息,当数据库连接池出现短时间内连接被大量使用,这个时候可以搭配我们的监控报警系统(如Nagios)

本博客已迁移到 https://jacksparrow414.com 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

JMX学习笔记(三)

本章讲述一个种特殊的MBean,称为MXBean。 通过MXBean,JMX客户端不需要做特殊的配置即可处理预定义的数据类型。 与MBean一样,MXBean同样需要定义一个接口和一个实现类,不同的是接口以MXBean作为后缀,且类名和接口名不必相同。MXBean的接口还可以通过@MXBean注解定义,这样接口名就不需要MXBean后缀了。 MXBean背后的原理:通过把预定义类型映射到一组标准类...

巅峰状态 226

JMX自定义MXBean

MXBean接口 一个MBean由一个MBean接口(该MBean接口列出了所有被暴露的属性和操作对应的方法)和一个class(这 个class实现了这个MBean接口并提供被监测资源的功能)组成。 下面的章节展示了一个MBean例子,以及管理该MBean的一个简单的 JMX agent。 public interface MXBeanBase { /** * 加载元素 ...

wachoo的blog 2040

JMX : MXBean

MXBean是一种MBean。 只会引用有限的几种数据类型,predefined set of data types。 如此,任何client都可以访问MXBean,包括远程client。client无需能访问到MXBean的attribute 的class。 命名规范: 接口 : XXXMXBean。或者用@MXBean注释,也可任意指定。 实现类 : 任意。 MXBean中

XF的专栏 3852

MBean与MXBean的区别

MBean与MXBean的区别

qq_44952707的博客 2179

MXBean

JAVA 平台MXBean 是一种托管 Bean,它符合 JMX Instrumentation Specification,提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 JAVA 平台MXBean: ClassLoadingMXBean      用于 Java 虚拟机的类加载系统的管理接口。  CompilationMXBean       用于 ...

MokeyXu 1061

MXBean already registered报错解决

启动springboot项目失败,报如下错误! at com.aiways.boss.AiwaysBossVoiceServiceApplication.main(AiwaysBossVoiceServiceApplication.java:25) Caused by: javax.management.InstanceAlreadyExistsException: MXBean alr...

muum的博客 6494

JMX的学习笔记

JMX的学习笔记 1. JMX简介 ​ JMX(Java Management Extemsions) 是一个为应用程序、设备、系统等植入管理功能的框架。 ​ JMX 是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。主要用于对JAVA应用程序和JVM进行监控和管理。JConsole和JVisualVM中能够监控到JAVA应用程序和JVM的相关信息都是通过JMX实现的。 ​ JMX 规范可以分为三层:设备层,代理层,分布式服务层。设备层规范定义了编写可由JMX管

weixin_45866849的博客 1522

JMX:Java程序监控的基石

JMX:Java程序监控的基石 一、什么是JMX? 二、JMX架构 三、JMX应用场景 四、自定义MBean 1.MBean接口方式 2.MXBean接口方式 3.Spring Bean方式

搬山境KL攻城狮的修炼手册 3966

JMX学习笔记(二):MBean

1.Architecture of the JMX Technology The JMX technology can be divided into three levels, as follows: InstrumentationJMX agentRemote management

java_huashan的专栏 1749

JMX详解以及使用示例

目录JMX是什么 JMX架构MBean标准MBean 定义接口实现接口注册MBean使用MBean 如何通过Web管理MBean JMX(Java Management Extensions)是一个为应用程序植入管理功能的标准化代理和服务。通常使用JMX来监控系统的运行状态或管理系统的某些方面,比如清空缓存、重新加载配置文件等。JConsole以及JVisualVM 都是通过JMX来实现对JAVA应用程序的监控。 JMX定义了四种类型的MBean,标准MBean,动态MBean,开放MBean和模

技术分享 3621

JMX详解(一)

JMX(Java管理扩展)是Java平台的系统管理标准,主要包含MBean(管理Bean)、MBeanServer(管理服务器)和连接器三大核心组件。MBean分为标准MBean、MXBean和动态MBean三种类型,用于暴露应用参数、性能指标等可管理资源。开发人员通过注册MBean到MBeanServer,配合JConsole等工具实现本地/远程监控管理。JMX支持安全认证、事件通知机制,广泛应用于Tomcat、SpringBoot等中间件,可与Prometheus等监控系统集成。

onlymscn的博客 930
上一篇: JMX学习笔记(二):MBean
下一篇: JMX学习笔记(四):Notifications
java_huashan
博客等级 码龄14年 37粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值