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

相關文章
相關標籤/搜索