Spring/SpringMVC在启动完成后执行方法

来源:互联网 发布:淘宝客推广群的广告词 编辑:程序博客网 时间:2024/06/04 19:08

在某些情况下,有可能你会有这种需求:在Spring/SpringMVC项目中,当Spring/SpringMVC启动完成后,你需要执行一个方法来完成某些事件(比如创建网站地图,比如从订阅Redis服务器等),解决方法是:

/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */package com.storezhang.web;import com.storezhang.util.TimeUtils;import com.storezhang.video.util.SiteMapUtils;import java.util.Timer;import java.util.TimerTask;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.ApplicationListener;import org.springframework.context.event.ContextRefreshedEvent;import org.springframework.stereotype.Service;/** * 启动监听器 * * @author Storezhang */@Servicepublic class StartupListener implements ApplicationListener<ContextRefreshedEvent> {    @Autowired    private SiteMapUtils sites;    @Override    public void onApplicationEvent(ContextRefreshedEvent evt) {        if (evt.getApplicationContext().getParent() == null) {            createSitemap();        }    }    private void createSitemap() {        Timer timer = new Timer("createSitemap", true);        timer.schedule(new TimerTask() {            @Override            public void run() {                System.out.println("--->Create sitemap...");                sites.createSiteMap();                System.out.println("--->Success create sitemap...");            }        }, 1 * TimeUtils.MIN);    }}


转载自:http://www.icoolxue.com/blog/show/21

1 0
原创粉丝点击