关于 spring 使用 mongodb 的 mongotemplate 对象操作数据库,对象注入问题(即该对象能否正常的调用相应的CRUD方法来处理数据)...
通過 spring 框架,直接調(diào)用一些處理對象的方法和數(shù)據(jù)庫交互, http 接口從 controller 層調(diào)用開始, 如果是:controller --> service --> dao --> entity 這個流程正常調(diào)用,則:
(1)controller1 --> service1 --> dao1 -->entity1?
(2)controller1 --> service2 --> dao2 -->entity2 (類推 3、4、5……都可以正常執(zhí)行)
但是如果:
(3)controller1 --> controller2 --> service1 --> dao1 -->entity1?
(4)controller1 -->?controller2 --> service2 --> dao2 -->entity2
會產(chǎn)生:這種由于邏輯需要,需要先在同一 controller 層,先調(diào)用其它 controller 類(直接 new 該類處理一下數(shù)據(jù)),再回來執(zhí)行自己實體類操作(或者其他實體類操作)的時候,這種情況下,controller2 里面的 mongotemplate 對象,這個時候是一個 null 對象,是不能正常調(diào)用該對象對應(yīng)的操作數(shù)據(jù)庫的方法,來執(zhí)行自己本身的邏輯的,也就是說,這個時候調(diào)用 controller2 類里面的方法,都是不能正常執(zhí)行的!
解決方法:想要 controller2 在 controller1 里面調(diào)用能都正常執(zhí)行,由于這時候,mongotemplate 在 controller2 中是 null 值,只要在 controller1 中把 mongotemplate 對象傳入給 controller2 中即可!(可以通過在 controller2 中添加構(gòu)造方法,在 controller1 中 new controller2(MongoTemplate mongotemplate) 時候把 mongotemplate 對象傳入 controller2 ,即可解決該問題!)
【http 通過 controller 進來的 mongotemplate 對象才會注入 spring ,才能正常使用,如果是通過其他 controller 類來調(diào)用同層的 controller 里面的 mongotemplate ,則該對象是 null 值,不可使用 !而從 controller 調(diào)用 service 這種不同層的,則可以正常使用!】
轉(zhuǎn)載于:https://www.cnblogs.com/xuehuashanghe/p/10394029.html
總結(jié)
以上是生活随笔為你收集整理的关于 spring 使用 mongodb 的 mongotemplate 对象操作数据库,对象注入问题(即该对象能否正常的调用相应的CRUD方法来处理数据)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言多维数组基础知识,C语言基础第7章
- 下一篇: vim文本编辑器的操作和命令(可作手册查