1. 开发一个interface继承ServiceMBean
import org.jboss.system.ServiceMBean;
public interface DataLoadMBean extends ServiceMBean{
}
2. 开发一个实现类,实现类的名字比接口名字少了MBean
import org.jboss.system.ServiceMBeanSupport;
public class DataLoad extends ServiceMBeanSupport implements DataLoadMBean {
}
3. 新建一个xml文件,以-service.xml结尾放在应用的WEB-INFO目录下(已有时直接添加,不需新建),这样Jboss启动会自动识别并加载用来注册MBean
<?xml version="1.0" encoding="UTF-8"?>
<server>
<mbean code="com.study.api.DataLoad"
name="jboss.load:service=loaddata">
</mbean>
</server>
应用发布后可以再Jboss的控制台(http/IP:port/jmx-console/)看到建立的MBean
在实现类里面添加如下方法overwrite父类ServiceMBeanSupport,JBoss在加载应用时会执行create,start,关闭Jboss时执行stop,destroy,也可在Jboss控制台调用这些方法。可以再create,start方法中添加代码用来作为应用开启时的初始化,比如读取配置文件,load数据库的数据,在stop和destroy方法添加一些代码用于资源的释放与清理。
protected void createService() throws Exception {
System.out.println("Create Service");
}
protected void startService() throws Exception {
System.out.println("Start Service");
}
protected void stopService() throws Exception {
System.out.println("Stop Service");
}
protected void destroyService() throws Exception {
System.out.println("Destroy Service");
}