java定时器没法自动注入的问题解析(原来Spring定时器能够这样注入service)

近些日子在作一个项目,在项目中须要用到spring的定时任务,可是在操做数据库的时候发现老是不能正确的进行数据的插入,通过查看才发现:是由于service层不可以经过普通的方法注入到action,因此这样就不可以执行service层,进而执行数据库的操做。javascript

解决方法:这时须要配置一个service注入的工具类,代码以下:java

1、工具类spring

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); } }

2、配置bean

<bean  id ="applicationContextUtil"  class ="org.sihai.soil.util.ApplicationContextUtil" ></bean >

3、定时器中经过ApplicationContextUtil类,得到service。

realmEbi = (RealmEbi) ApplicationContextUtil.getBean("realmEbi");
        realmEbi.insertHour(RealmApplianceModel.sendData3);

完美解决了,这样咱们就能够获取到service对象进行相对应的业务处理,而不须要再建立jdbc来操做了。数据库

java学习群669823128app

相关文章
相关标签/搜索