package com;
public interface HelloMBean {
public String getName();
public void setName(String name);
public void printHello();
public void printHello(String whoName);
}
package com;
public class Hello implements HelloMBean {
private String name;
public String getName() {
// TODO Auto-generated method stub
return name;
}
public void printHello() {
// TODO Auto-generated method stub
System.out.println("hello world"+name);
}
public void printHello(String whoName) {
// TODO Auto-generated method stub
System.out.println("hello,"+whoName);
}
public void setName(String name) {
// TODO Auto-generated method stub
this.name=name;
}
}
package com;
import java.lang.management.ManagementFactory;
import javax.management.InstanceAlreadyExistsException;
import javax.management.MBeanRegistrationException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.NotCompliantMBeanException;
import javax.management.ObjectName;
import com.sun.jdmk.comm.HtmlAdaptorServer;
public class HelloAgent {
/**
* @param args
* @throws NullPointerException
* @throws MalformedObjectNameException
* @throws NotCompliantMBeanException
* @throws MBeanRegistrationException
* @throws InstanceAlreadyExistsException
* @throws Exception
*/
public static void main(String[] args) throws MalformedObjectNameException, NullPointerException, InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException, Exception {
//先创建了一个MBeanServer,用来做MBean的容器
//MBeanServer server = MBeanServerFactory.createMBeanServer();
MBeanServer server=ManagementFactory.getPlatformMBeanServer();
//将Hello这个类注入到MBeanServer中,注入需要创建一个ObjectName类
//chengang:name=HelloWorld的名字是有一定规则的,格式为:“域名:name=MBean名称”,域名和MBean名称都可以任意取。
ObjectName helloName= new ObjectName("yu:name=Hhaha");
Hello hello = new Hello();
server.registerMBean(hello,helloName);
//创建一个AdaptorServer,这个类将决定MBean的管理界面,这里用最普通的Html型界面。AdaptorServer其实也是一个MBean。
ObjectName adapterName = new ObjectName("HelloAgent:name=htmladapter,port=8082");
HtmlAdaptorServer adapter = new HtmlAdaptorServer();
server.registerMBean(adapter, adapterName);
adapter.start();
System.out.println("start");
for(int i =0; i<100;i++){
System.out.println(hello.getName());
Thread.sleep(6000);
}}
}
分享到:
相关推荐
对于初学者,这个"最简单JMX例子"将展示如何创建一个简单的MBean,如何在Eclipse这样的集成开发环境中配置和运行,以及如何通过标准的JMX客户端工具进行交互。通过学习这个例子,你可以理解JMX的基本结构和用法,为...
本篇文章将深入探讨JMX的核心概念、功能及如何通过一个小例子来理解和使用JMX。 **1. JMX核心概念** - **MBean(Managed Beans)**: MBean是JMX中最基本的管理单元,它是Java对象,代表可管理的资源或服务。MBean...
ESB(Enterprise Service Bus,企业服务总线)是企业级集成解决方案的核心,它提供了...通过这个简单的例子,我们可以深入理解ESB如何在企业集成场景中发挥关键作用,协调不同系统的通信,并提供灵活的服务组合和管理。
在这个例子中,我们连接到运行在本地的ActiveMQ服务器(默认端口61616),创建一个非事务性的会话,然后创建一个消息队列`myQueue`作为目的地。接着,我们创建一个`MessageProducer`来发送`TextMessage`,最后关闭...
以下是一个简单的示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; public class ProcessMonitor { public static void main(String[] args) { try { Process process = ...
Apache Camel 是一个流行的开源框架,主要用于构建...总的来说,这个压缩包提供了一个了解和学习Apache Camel的实战例子,通过阅读说明和运行示例,你将能够深入理解Camel如何在Java环境中构建和管理复杂的集成逻辑。
文档提供了如何实现一个简单的POJO例子,包括提供无参构造函数、标识属性、以及为持久化字段声明访问器和可变标志。还包括如何实现继承结构以及如何处理动态模型和元组片断映射。 对象/关系数据库映射基础(Basic O...
- **简单的 POJO 示例**:通过一个简单的例子来介绍持久化类的基本概念。 - **实现继承**:讲解如何在 Hibernate 中实现继承。 - **实现 equals() 和 hashCode() 方法**:为了支持正确的对象比较,必须正确实现这两...
- **一个简单的POJO例子**:通过一个简单的POJO示例介绍持久化类的基本要求。 - **实现继承**:解释如何使用Hibernate支持的继承策略。 - **实现equals()和hashCode()方法**:确保实体的正确比较。 - **动态模型**:...
- **4.1 一个简单的POJO例子** - **实现一个默认的(即无参数的)构造方法**: 确保每个持久化类都有一个无参构造函数。 - **提供标识符属性**: 为每个实体类定义唯一的标识符。 - **优选非最终类**: 避免使用...
**最简单例子** ```xml <value>host1:port1 host2:port2 ``` 这会在Spring容器中创建一个名为`memcachedClient`的bean,连接到指定的memcached服务器。 **复杂例子** ```xml <value>host1:port1 host2:...
4.1. 一个简单的POJO例子 4.1.1. 为持久化字段声明访问器(accessors)和是否可变的标志(mutators) 4.1.2. 实现一个默认的(即无参数的)构造方法(constructor) 4.1.3. 提供一个标识属性(identifier property)(可...
增加了页面分页和后台分页方法 (如果看了我第一个例子的朋友.应该看到我在service层的find方法上的注释.说当前版本因为原来使用find方法是从代理中取.而spring默认的数据持久话只能包含业务层和数据层.不能包含...
##### 4.1 简单的 POJO 例子 - **实现默认构造方法**: 必须有一个无参构造函数。 - **提供标识属性**: 主键字段。 - **使用非 final 类**: 便于子类继承。 - **声明访问器和是否可变的标志**: 提供 getter 和 ...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @...
9.5.2. 第一个例子 9.5.3. 回滚 9.5.4. 为不同的bean配置不同的事务语义 9.5.5. <tx:advice/> 有关的设置 9.5.6. 使用 @Transactional 9.5.7. 事务传播 9.5.8. 通知事务操作 9.5.9. 结合AspectJ使用 @...