在Spring MVC中使用工具類呼叫Service層時,Service類為null如何解決

yy339452689發表於2017-06-15

因為平時在呼叫service層時都是在controller中,有配置掃描注入,spring會根據配置自動注入所依賴的服務層。

但因我們寫的工具類不屬於controller層,所以當所寫介面需要呼叫服務層是,常常會為NULL。

下面就分享一個實踐後可行的辦法,如下圖所示:


主要是:1.將此工具類加上@Component註解

2.將所需呼叫的服務類設定成靜態屬性,並通過方法直接將服務層設定成工具類自己的屬性即可。

(雖然還沒搞懂原理,但確實可行)


====================================================================================================================================

近期在做串列埠或者comet4j時,發現也會使用到service層,但貌似上面方法未能有效。

今日特地前來加補一種方法。因為我們使用的spring框架,所以所有的類基本都由spring容器同一載入管理。

於是,我們可以自己再載入一下spring的xml配置檔案,來獲取我們所想要得到的物件,如下圖:

public static ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/spring-*.xml");
    private static SystemalarmService systemalarmService = (SystemalarmService)applicationContext.getBean(SystemalarmService.class);
    private static AlarmInfoService alarmInfoService = (AlarmInfoService)applicationContext.getBean(AlarmInfoService.class);



相關文章