因為平時在調用service層時都是在controller中,有配置掃描注入,spring會根據配置自動注入所依賴的服務層。
但因我們寫的工具類不屬於controller層,所以當所寫接口需要調用服務層是,常常會為NULL。
代碼如下:
//關於工具類調用服務層的方法 @Autowired //注入service層 private VTcTbdwdmService vTcTbdwdmService; //在spring初始化之前,初始化一個靜態類 private static MulConditionUtils mulConditionUtils; //定義服務層的方法 public void setVTcTbdwdmService(VTcTbdwdmService vTcTbdwdmService) { this.vTcTbdwdmService=vTcTbdwdmService; } //通過@PostConstruct方法實現Bean初始化之前和銷毀之前的自定義操作 @PostConstruct public void init() { mulConditionUtils=this; mulConditionUtils.vTcTbdwdmService=this.vTcTbdwdmService; // 初使化時將已靜態化的vTcTbdwdmService實例化 }
解釋:
關鍵點1::private static MulConditionUtils mulConditionUtils;靜態初使化 一個工具類 這樣是為了在spring初使化之前
關鍵點2:@PostConstruct;通過@PostConstruct 和 @PreDestroy 方法 實現初始化和銷毀bean之前進行的操作
具體調用服務層時:
String allTbdwdm = mulConditionUtils.vTcTbdwdmService.getSonTbdwdm(newTbdw);