为JBoot系统增加启动任务

阅读更多
JBoot在启动时会扫描类路径中是否存在JbootAppListenerBase类,如果有,则会初始化这个类,并执行其中的onJbootStarted方法(还有其它方法钩子,详见Jboot手册),因此可以通过继承JbootAppListenerBase类实现启动任务。
系统全局应该只有一个JbootAppListenerBase的实现类,经测试,Jboot只会启动其中一个,其它会被忽略。

如下在启动是同步启动了一个短信发送进程:
@Slf4j
public class StartListener extends JbootAppListenerBase {
    /**
     * jboot 启动完成后,启动短信发送线程
     */
    @Override
    public void onJbootStarted() {
        SmsConfig config = Jboot.config(SmsConfig.class);
        String clazz = config.getClazz();
        try {
            Thread sms = (Thread) Class.forName(clazz).newInstance();
            sms.start();
        } catch (Exception e){
            log.error("短信进程异常", e);
            System.exit(1);
        }
    }
}

你可能感兴趣的:(jboot)