天天看點

《Spring Data實戰》——2.4 IDE內建

本節書摘來自異步社群《spring data實戰》一書中的第2章,第2.4節,作者: 【美】mark pollack , oliver gierke , thomas risberg , jon brisbin , michael hunger著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

在3.0版本中,spring工具套件(spring tool suite,sts)提供了與spring data repository抽象進行內建的功能。sts為spring data所提供的核心支援是查找方法的查詢衍生機制。它所能做到的第一件事就是在ide中校驗衍生查詢方法的正确性,這樣,不需要啟動applicationcontext就能立刻探測出方法名中引入的拼寫錯誤。

如圖2-1所示,ide檢測到descrption是非法的,因為product類中并沒有這樣的屬性。為了發現這些拼寫錯誤,它會分析product領域類(這些事情在啟動spring data repository時也會做)來擷取屬性并将方法名解析為屬性的周遊樹。為了盡早避免這種類型的拼寫錯誤,sts的spring data輔助功能為屬性名、條件關鍵字(criteria keyword)以及像and和or這樣的連接配接符提供了代碼補全功能,如圖2-2所示。

《Spring Data實戰》——2.4 IDE內建

圖2-1 spring data sts對衍生查詢方法名進行校驗

《Spring Data實戰》——2.4 IDE內建

圖2-2 對衍生查詢方法的屬性代碼補全提示

order類中有一些你可能想要引用的屬性。假設我們要周遊billingaddress屬性,cmd+space(或者在windows中使用ctrl+space組合鍵)将會觸發嵌套屬性的周遊,這樣将會提示出嵌套的屬性并根據此時所周遊的屬性類型提示所比對的關鍵字(如圖2-3所示)。是以,string類型的屬性将會多一個like的提示。

《Spring Data實戰》——2.4 IDE內建

圖2-3 嵌套屬性和關鍵字提示

為了提供一些錦上添花的特性,spring data sts會将repository作為ide導航中的一等公民,使其帶有衆所周知的spring bean辨別。除此之外,導航中的spring元素(spring elements)節點将會包含一個專有的spring data repositories節點,用來放置應用程式中所配置的所有repository,如圖2-4所示。

《Spring Data實戰》——2.4 IDE內建

圖2-4 在sts中,具備spring data支援的eclipse項目資料總管

可以看到,你能夠快速找到repository接口并跟蹤它實際上來源于哪一個配置元素。

2.4.1 intelli idea

最後,啟用jpa支援後,idea提供了repository查找方法的補全功能,這種補全涵蓋了衍生的屬性名以及可用的關鍵字,如圖2-5所示。

《Spring Data實戰》——2.4 IDE內建

圖2-5 在idea編輯器中,查詢方法的補全功能