如果需要在定时器里写sql。或者需要依赖注入一些对象时
import javax.servlet.ServletContext;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.stereotype.Component;
import org.springframework.web.context.ServletContextAware;
//@Component注解是一定要加的。
@Component
public class TimeSwitch implements ApplicationContextAware, ServletContextAware,
ApplicationListener {
// 可以进行依赖注入对象
// @Autowired
// private PackageService packageService;
@Override
public void setApplicationContext(ApplicationContext ctx) throws BeansException {
System.out.println("1 => StartupListener.setApplicationContext");
// 下面的是一个定时器。
// Timer nTimer = new Timer();
// nTimer.schedule(new TimerTask() {
// public void run() {
// 在这里编写逻辑代码即可。
// }
//
// },10003,10002);
}
//下面两个方法等同于上面的方法。选其一即可。
@Override
public void setServletContext(ServletContext context) {
System.out.println(“2 => StartupListener.setServletContext”);
}
@Override
public void onApplicationEvent(ContextRefreshedEvent evt) {
System.out.println("4.1 => MyApplicationListener.onApplicationEven");
if (evt.getApplicationContext().getParent() == null) {
System.out.println("4.2 => MyApplicationListener.onApplicationEvent");
}
}
}