最近一直在開發一些基於 spring data rest 的專案。在此過程中,隨著開發工作的不斷深入,對 spring data rest 的了解也越來越深。享受著 spring data rest 帶來的便捷,也忍受著它帶來的不便。
spring data rest 的目標是提供堅實的基礎,從而使用 http rest 語義來開放 crud 操作到你的 jpa 庫管理的實體。
spring data rest 提供了一系列的功能特性,來幫助開發者減少重複工作:
在實際的開發過程中,總結出了一些 spring data rest 的適用場景:
在使用過程中,發現一些實際開發中的常見的需求,在使用 spring data rest 後,實現起來變得複雜了許多。
使用 spring data rest 後,按通用方式下配置的***不生效,無法攔截住 spring data rest 提供的 restful。需要特殊配置:
@bean
}
@component
public class beforecreateeventlistener
if (relatedtransaction.getstate() == null)
} else if (source instanceof relatedproject) else if (source instanceof relatedcompany)}}
}
所有模型的資料建立都會發布 beforecreateevent,所以在處理資料時就需要對資料型別進行判斷。這種情況下,很容易就會將多個模型的資料加工的處理邏輯耦合到一起。
在儲存資料時,提供了 event 供開發者處理資料,但是在查詢資料的時候卻沒有提供相應的資料處理機制,所有對於 vo 資料的加工,開發者就沒辦法使用 spring data rest 了。
spring data rest 是基於 spring data jpa 實現的,而 spring data jpa 底層的 orm 是 hibernate 。就像網上大多數言論一樣,hibernate 太複雜了,尤其在處理自定義 sql 的關聯查詢時,讓開發者感覺無從下手。
這裡說的文件少指的是關於 spring data rest 和 spring data jpa 國內的文件太少了。在國內網際網路推崇了 mybatis 之後,國內的部落格、**到處都充斥著 mybatis 的幫助文件,問題解決方案。
在軟體開發領域裡,沒有銀彈,每一種技術、一種框架都有它自己的適用場景。
關於程式關於世界
首先,在學了1年多的軟體設計的基礎上,問下自己 程式是什麼?業務需求是什麼?程式有什麼用?什麼是演算法?什麼是資料庫?或許每個人的理解不同,會給出不同的答案。那麼自己的理解 程式是乙個讓計算機工作的流程,在程式寫好之後,計算機就會按照,程式設計師定義好流程在執行。其實很多時候,乙個程式的好壞,在於乙...
關於血液關於軟體
1 自然沉降法 將血袋垂直吊掛於4 2 冰箱內,使紅細胞自然下沉1 3d,或將血袋呈70 80 角立於冰箱,需用時,用一次性分漿器分出血漿,制得濃縮紅細胞。2 洗滌法 一般用生理鹽水反覆洗滌3 6次。經洗滌的紅細胞,除白細胞和血小板減少外,血漿蛋白也極少,紅細胞中殘存的血漿蛋白含量約為原總蛋白的1 ...
關於冷漠,關於愛情
我不知道為什麼今天又莫名其妙開始思考愛情這件事,隨之就解決了我一直無法面對冷漠這件事 被冷漠是我始終無法消化的一件事,每當遇見冷漠時,我總會覺得就像一團火把自己燒得面目全非,但對方卻毫無傷害。但我突然懂了,遇到冷漠時,體面的離開即可 在乎你的人一定會在你離開後,找到你跟你解釋為什麼 連解釋都來不及,...