近些日子在做一個項目,在項目中需要用到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