最近公司在做对账单,要求定时自动执行,于是从网上查了各种定时器用法,最终没有一个是好用的,发现service层无法自动注入的原因导致,至于是什么原因导致无法注入,我还是不晓得,希望有这方面经验的同僚给出建议。
我是将定时器的初始化放入到servlet中饭控制的,当然放入到监听器中也是可以的,看自己的喜好。
为了获取到这个注入对象,只能我们手动注入了,就是通过获取上下文对象,然后再对这个对象进行解析,然后取出自己所要的那个对像。下面我贴出一个方法,以便大家后期使用时可以方便问题的解决。
public class ApplicationContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public void setApplicationContext(ApplicationContext applicationContext) {
ApplicationContextUtil.applicationContext = applicationContext;
}
public static Object getBean(String beanName) {
return applicationContext.getBean(beanName);
}
}
这个是获取的方法,我们还要做的就是在Spring的配置文件中加一句话,对这个方法进行声明配置
<bean id ="applicationContextUtil" class ="com.wisdom.trip.util.ApplicationContextUtil" ></bean >
大家根据自己的项目进行修改设置。
在使用时一定要确定自己要的这个对象已经配置到Spring文件中了。
以上是我根据网友的意见和自己的实践总结出来的,亲测好用,欢迎大家提供更好的方式。