基於SpringBoot的快速開發框架分享

2021-09-26 10:38:08 字數 1730 閱讀 6828

首先github:

介紹一下我的這個專案,這個專案我是去年開始做的,斷斷續續寫了差不多4、5個月;而完善功能之後,也是很久沒有修改過了。這個框架基於rest風格開發,適合做前後端分離的專案,用到的技術也特別注重開發效率,都是選擇了一些可以高效開發並且使用簡單的技術。前段時間使用過thinkphp,自認為springboot + jpa 這套技術的開發速度是不輸php的,並且執行速度方面也是比php快很多。

這個框架我也運用在過幾個小專案上,也沒有發現太大問題。

下面開始具體介紹這個框架。

資料庫框架是使用的spring data jpa,使用springboot後,發現spring自家就有個jpa。畢竟是spring自家的東西,springboot官方也是推薦用的jpa,當但我也嘗試整合了mybatis,各有所長吧,但是我主要是想要整合乙個可以快速開發的框架,mybatis在進行多表curd上確實要比spring data  jpa要靈活,但靈活就通常意味著會失去了開發速度。比如軟體開發到一定的時候,突然提出某個功能要改,這個時候資料庫表字段這些可能會要修改,這個時候,就需要修改mybatis的xml配置檔案了,還會要重新寫sql語句。考慮到這個情況,spring data  jpa就方便多了,因為all in model,所有的curd操作是基於實體來實現的,僅僅需要修改實體的字段即可,連資料庫都不用管。但是,缺點就是jpa還不夠靈活,我上面也說了。mybatis和spring data jpa各有所長吧,但是我整合框架的目的是用來可以快速寫後台介面,所以我還是選擇了spring data jpa。

介紹一下spring data jpa,它對倉儲層(repository)進行了封裝,而且幹的十分完美,在很多情況下是不需要你寫sql的,你只要建立倉儲層類時指定好實體類,寫好介面的方法名就好了,spring data jpa會根據你的方法名來自動生成sql,這樣開發人員幾乎不需要關注資料庫層了,只需要關注業務就行了(但是碰到複雜的,涉及多表的操作還是要寫sql語句的,這也是乙個弊端。正所謂魚和熊掌不可兼得)

許可權控制我整合的是shiro + jwt,springboot作為spring的一員,我之前整合了他們家的springsecurity,無奈好像還聽難用的,比shiro複雜多了,原諒我技術有限,真的要使用這個的話英語得要非常好才行。要看他官方的文件才行,有問題得去stackflow才能找到解決方法了。中文的資料並不多。反正shiro簡單就完事了。

後來還是沒用shiro了,因為我嫌shiro也麻煩。於是我自己寫了乙個***,通過註解的的方式來實現許可權控制,當然,它十分精簡,功能肯定是不如框架了,這個***位於包:cn.pxy.ysframework.interceptor下,它的邏輯是獲取註解裡的引數(請求資源的名稱),然後去查詢請求header中的token,看這個token所屬的使用者有沒有請求這個資源的許可權,有則放行,無則攔截返回無許可權錯誤。

全域性異常處理位於包:cn.pxy.ysframework.web.controller下的exceptioncontroller,通過註解來捕獲所有異常,返回封裝好的訊息類responsebean。

用的是swagger2,這個還真的是個好東西,便於前後端聯調,介面都是自動生成的。值得注意的是,swagger在springboot的位址有點不一樣,是專案位址 + /swagger-ui.html。開關的方法是在springboot的入口檔案上打註解@enableswagger2,文字介紹也是通過註解的方法,在包cn.pxy.ysframework.web.controller中的usercontroller下有使用例項,當然去官網看文件是更好的選擇咯。

介紹暫時先寫到這裡吧。希望可以幫助到需要的人。

基於SpringBoot開發

使用idea配置springboot專案 專案結構 而 configuration 經常與 bean 組合使用,使用這兩個註解就可以建立乙個簡單的spring 配置類,可以用來替代相應的xml 配置檔案。enableautocon figuration 能夠自動配置spring 的上下文,猜測和配置...

Spring Boot快速入門

spring boot屬性配置檔案詳解 自定義屬性與載入 我們在使用spring boot的時候,通常也需要定義一些自己使用的屬性,我們可以如下方式直接定義 xml xml org.springframework.bootgroupid spring boot starterartifactid d...

Spring Boot 快速入門

spring boot 是由 pivotal 團隊提供的全新框架,其設計目的是用來簡化新 spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。spring boot 被認為是 spring mvc 的 人 它可以幫我們自動配置,如果預設...