java定時器無法自動註入的問題解析(原來Spring定時器可以這樣註入service)
阿新 • • 發佈:2018-01-20
nco 方法註入 數據庫的操作 div end pub spring定時器 ext 發現
近些日子在做一個項目,在項目中需要用到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來操作了。
java學習群669823128
java定時器無法自動註入的問題解析(原來Spring定時器可以這樣註入service)