年初公司計劃要上一個產品,而且是要在兩週內上線(由於之前已經開發、運營過一個類似的產品,所以這次要求先將核心功能上線;當然最後沒有那麼快上線,這是後話)。 由於這個系統比較複雜,所以我們和以前一樣計劃將服務拆分,包括後臺管理、微信端,api層,訊息服務,排程任務等若干服務。領導既然發話了,無論計劃看上去多麼不靠譜,擼起袖子也得幹。
技術方案決定使用spring boot 後,大家分工開始各自各幹各的。
我很“榮幸”的分到後臺管理等若干模組,開始乾的時候我就想,兩週時間寫介面都不夠。於是開始上網找輪子,有幸發現guns:一個基於spring boot的後臺管理系統,而且具備程式碼生成功能。 但是這個專案有個不方便的地方:資料庫訪問層使用的是mybatis。由於其他服務已經開始開發,而且都是使用spring data jpa。如果我要用guns,就沒辦法和別人共用dao層,層連帶的 service層也沒辦法共用了。想想以後要維護兩套dao層和service層就吸了一口涼氣——這是個金融系統,dao和service層僅僅靠自動生成的程式碼是遠遠不夠的。
所以等專案過了兩週後,不出預料專案要延期了(具體原因不僅僅是內部原因,還有外部投資人、客戶對產品需求的變更等,這不是重點,暫且不表)。於是趁著延期的那段時間, 將後臺管理的dao層適配為jpa,service也使用公共的service了。
改造期間,驚心動魄。因為產品人員幾度表明“明天測試”或者“下週上線試執行”,導致同時維護兩個後臺管理,老版本繼續在guns的基礎上開發功能趕進度,新版本使用jpa和新的service不停的追趕老版本。
持續了將近兩週的時間,終於新版本追上了,老版本果斷丟棄。
想到也許有同樣需求的開發同學,或者不喜歡mybatis的同學,或者由於種種原因不方便使用mybatis,就將其貢獻出來,也就是這個guns-lite: github.com/enilu/guns-….
說明
- guns-lite是在guns的基礎上將資料庫層由mybatis替換為spring data jpa的系統。
- guns-lite是一個基於spring boot的後臺管理系統。
技術選型
- 核心框架:spring boot
- 資料庫層:spring data jpa
- 安全框架:Shiro
- 資料庫連線池:Druid
- 快取:Ehcache
- 前端:Beetl模版+Bootstrap
交流
- 歡迎提issue github.com/enilu/guns-…
- 歡迎加入qq交流群:740230743