最近在看一本純英文的書,名字叫Spring REST Building Java Microservices and Cloud Applications (Balaji Varanasi, Maxim Bartkov),是講如何使用SpringBoot開發專案的。如果大家有需要可以留言或者私信,我可以把這本書分享給大家。
此案例就是出自於這本書中,是一個貫穿全書的案例。我會將書中的案例實現,然後整理,之後將程式碼寫出來,分享給大家。
建立SpringBoot專案quick-pool:
勾選相關的依賴:
關於這個應用的實體說明。Poll一個投票,包含多個選項;Vote是投票的結果,關聯一個選項;Option是投票的選項。一個Vote關聯一個Option,一個Poll關聯多個Option。Poll和Vote沒有必然的關係。
如圖:
整個問題是一個Poll,這個問題中的每個選項是一個一個的Option,點選投票以後,產生一個Vote。
建立Poll實體類:entity。Poll。java
建立實體類Vote:entity。Vote。java
建立實體類Option:entity。Option。java
持久層資料庫的選擇。這裡的資料庫使用的是基於記憶體的資料庫HSQLDB,優點是不需要配置賬號密碼和URI,能夠基於記憶體直接使用,非常便於測試環境。缺點是資料無法持久化,重新啟動以後資料都得重新生成。
要使用HSQLDB,需要在pom。xml中引入:
建立持久層物件:repository。PollRepository。java
建立持久層物件:repository。VoteRepository。java
建立持久層物件:repository。OptionRepository。java
建立控制層物件:controller。PollController。java
這裡的@Inject是JavaEE6中引入的,需要在pom。xml中新增依賴:
我們在apifox中設計介面文件:
啟動服務,使用ApiFox進行測試: