1. 程式人生 > >java定時器無法自動註入的問題解析(原來Spring定時器可以這樣註入service)

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

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)