JBOSS EJB3项目启动执行一个任务
程序员文章站
2024-02-22 22:13:58
...
在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>
上一篇: 双token实现token超时策略示例