java定時器無法自動注入的問題解析(原來Spring定時器可以這樣注入service)


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM