在jboss的项目中,jboss启动的时候,带动一个类的执行,如果是web项目中,采用ServletContextListener可以实现。如果是非web项目采用jmx实现。
采用@Service和@Management实现
import org.jboss.ejb3.annotation.Management; /** * * <p>功能描述,该部分必须以中文句号结尾。<p> * * 创建日期 2013-8-6<br> * @author $Author$<br> * @version $Revision$ $Date$ * @since 3.0.0 */ @Management public interface BeanLauncherManagement { public void start() throws Exception; }
/** * * <p>EJB3在 @Service不能使用自动注入,需要手动注入<p> * * 创建日期 2013-8-6<br> * @author $Author$<br> * @version $Revision$ $Date$ * @since 3.0.0 */ @Service public class BeanLauncher implements BeanLauncherManagement { public void start() throws Exception { System.out.println("jboss启动了哦"); } }
采用jmx实现如下:
import org.jboss.system.ServiceMBean; public interface HelloWorldServiceMBean extends ServiceMBean { String getMessage(); void setMessage(String message); }
/** * <p>EJB3不能自动注入<p> * * 创建日期 2013-8-6<br> * @author $Author$<br> * @version $Revision$ $Date$ * @since 3.0.0 */ import org.jboss.system.ServiceMBeanSupport; public class HelloWorldService extends ServiceMBeanSupport implements HelloWorldServiceMBean { private String message; public String getMessage() { System.out.println("getMessage()=" + message); return message; } public void setMessage(String message) { System.out.println("setMessage(" + message + ")"); this.message = message; } }
META-INF/jboss-service.xml
<?xml version="1.0" encoding="UTF-8"?> <server> <mbean code="com.easy.jmx.HelloWorldService" name="www.chengang.com.cn:service=HelloWorld"> <attribute name="Message">Hello World</attribute> </mbean> </server>