關於 spring 使用 mongodb 的 mongotemplate 對象操作數據庫,對象注入問題(即該對象能否正常的調用相應的CRUD方法來處理數據)


通過 spring 框架,直接調用一些處理對象的方法和數據庫交互, http 接口從 controller 層調用開始, 如果是:controller --> service --> dao --> entity 這個流程正常調用,則:

(1)controller1 --> service1 --> dao1 -->entity1 

(2)controller1 --> service2 --> dao2 -->entity2 (類推 3、4、5……都可以正常執行)

但是如果:

(3)controller1 --> controller2 --> service1 --> dao1 -->entity1 

(4)controller1 --> controller2 --> service2 --> dao2 -->entity2

會產生:這種由於邏輯需要,需要先在同一 controller 層,先調用其它 controller 類(直接 new 該類處理一下數據),再回來執行自己實體類操作(或者其他實體類操作)的時候,這種情況下,controller2 里面的 mongotemplate 對象,這個時候是一個 null 對象,是不能正常調用該對象對應的操作數據庫的方法,來執行自己本身的邏輯的,也就是說,這個時候調用 controller2 類里面的方法,都是不能正常執行的!

解決方法:想要 controller2 在 controller1 里面調用能都正常執行,由於這時候,mongotemplate 在 controller2 中是 null 值,只要在 controller1 中把 mongotemplate 對象傳入給 controller2 中即可!(可以通過在 controller2 中添加構造方法,在 controller1 中 new controller2(MongoTemplate mongotemplate) 時候把 mongotemplate 對象傳入 controller2 ,即可解決該問題!)

【http 通過 controller 進來的 mongotemplate 對象才會注入 spring ,才能正常使用,如果是通過其他 controller 類來調用同層的 controller 里面的 mongotemplate ,則該對象是 null 值,不可使用 !而從 controller 調用 service 這種不同層的,則可以正常使用!】


免責聲明!

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



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