guns Lite基於spring boot的後臺管理系統

enilu發表於2018-07-16

年初公司計劃要上一個產品,而且是要在兩週內上線(由於之前已經開發、運營過一個類似的產品,所以這次要求先將核心功能上線;當然最後沒有那麼快上線,這是後話)。 由於這個系統比較複雜,所以我們和以前一樣計劃將服務拆分,包括後臺管理、微信端,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

交流

相關文章