java springboot 搭建_springboot搭建java项目
搭建項目,離不開架構,一個好的架構可以讓開發事半功倍,技術是可替換的,思想是不變的,所以在越往后的技術生涯,你聽到更多的是某個技術的核心思想是怎么樣的,處理了什么問題。以上,共勉。
隨著開發的項目越來越多,越來越體會到項目搭建的重要性,一般情況下后臺需要提供:(移動端/網頁)接口服務,管理后臺接口服務,服務與服務之間的接口服務,怎么讓每個模塊都盡可能的復用,減少重復代碼。
這時就有人說了:“所有的接口服務我都放在一個項目里,這樣不管是service,實體類,工具類等都能共用,不就好了嗎?”
這個時候就引申了一個問題:在不影響其他的渠道服務的情況下更新某一個渠道服務,這樣是不是就會出現問題呢?因為你要更新,所以這個服務需要先停服,一旦停服其他渠道也是引用的這個服務,就會無法使用,并且這個項目會越來越大,框架會交錯,維護的成本也會越來越高,新人入手會使得上手困難。
怎么搭建更合適?
沒有最合適只有更合適,本篇文章只是個人的一個構思,如果您有更好的方式,歡迎評論
框架選型
SpringBoot 2.3.5.RELEASE
Mybatis-plus 3.4.1
Knife4j?2.0.7
Lombok
Maven
項目結構
template-server-v2 #父項目
- template-core #數據庫對應的entity,mapper,service,serviceImpl
- template-common #工具類
- template-service #業務處理
- template-controller #接口
工程包職責是怎么分配的
template-common
描述
主要承擔template-service的工具類,比如什么MD5,aes的工具類,一些redis的工具類啥的,會放在這里
template-core
描述
主要承擔了數據庫表對應實體類的映射以及增刪改查功。注意這里面是沒有任何業務處理的,只有生成的類。
pom.xml?里面集成了 mysql 以及 mybatis-plus 以及 druid,采用mybatis-plus的代碼生成插件可以快速的生成實體類service,以及mapper,更可以根據?自定義模板生成 不同的類 放在 不同的位置
template-core 主要是為了給 template-service 所有類的CRUD操作。
優點
采用mybatis-plus生成插件,不需要在idea上安裝任何東西,可快速生成實體類以及對應的crud,減去了手動創建的麻煩事,可以修改生成配置,也可自定義模板
template-service的工程包引用template-core,如果數據庫表字段新增或者變更,只需要修改?template-core 內對應的實體便可
template-service
描述
主要承擔了業務的完整操作。一般復雜的業務都是由幾張表的CRUD組成,因為引用了template-core,所以直接使用提供的CRUD對進行組合拼接成業務。
事務的處理也是在這里,并且 template-service 里面會有 Param 接口參數包以及 VO 視層結果包:主要是為了controller的接口參數的接收以及結果返回
優點
template-service 的抽離,使得 其他 controller 工程包可以引用,減少相同的代碼編寫,舉個例子:比如我們需要做一個商城,它具有PC版+APP版+小程序版,業務相同的情況下只是?controller 以及校驗規則不一樣。這個時候就發揮了抽離好處
template-controller
描述
主要承擔了接口供給,swagger文檔顯示,全局異常處理,結果集返回,請求日志保存,接口權限等有關接口處理的操作。這里不處理任何業務,做參數接收以及轉發到service
如果有app的接口,管理后臺的接口,pc的接口,小程序的接口,那么template-controller會對應有4個工程,可以是template-controller-app,template-controller-applets,template-controller-back,template-controller-pc,
相同的是:引用需要的?template-service?功能包;不同的是:接口校驗,登錄方式,接口文檔,日志記錄等。。。
優點
不同渠道接口的分離,使得他們不管是升級還是停服都不會相互影響,因為會打多個controller的項目包。
框架分離,比如我管理后臺之前用的是SpringSecurity,后面用的不爽了我要改成Shiro,只需要修改template-controller-back的工程包,與其他無關,愛咋搞咋搞,搞崩了也只是崩你自己的。沒毛病
維護性更高,新人來了需要把管理后臺的接口給到新人熟悉,只需要關注單一template-controller-back工程包,不會全部接口都擠在一起,新人頭疼,自己維護也懵逼
擴展性更好,如果template-controller-app需要做負載,那就做單一的工程包服務處理,其他不影響,
項目源碼
總結
以上是生活随笔為你收集整理的java springboot 搭建_springboot搭建java项目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java线程 对文件copy 可能删除了
- 下一篇: php星座判断源码,php根据日期判断星