近些日子在做一个项目,在项目中需要用到 spring 的定时任务,但是在操作数据库的时候发现总是不能正确的进行数据的插入,经过查看才发现:是因为 service 层不能够通过普通的方法注入到 action,所以这样就不能够执行 service 层,进而执行数据库的操作.
解决方法:这时需要配置一个 service 注入的工具类,代码如下:
一,工具类
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);
}
}
二,配置 bean
<bean id ="applicationContextUtil" class ="org.sihai.soil.util.ApplicationContextUtil" ></bean >
三,定时器中通过 ApplicationContextUtil 类,获得 service.
realmEbi = (RealmEbi) ApplicationContextUtil.getBean("realmEbi");
realmEbi.insertHour(RealmApplianceModel.sendData3);
完美解决了,这样我们就可以获取到 service 对象进行相对应的业务处理,而不需要再创建 jdbc 来操作了.
来源: http://blog.csdn.net/sihai12345/article/details/79006185