springboot-plus
一個基於SpringBoot 2 的管理後臺系統,包含了用戶管理,組織機構管理,角色管理,功能點管理,菜單管理,權限分配,數據權限分配,代碼生成等功能 相比其他開源的後臺系統,SpringBoot-Plus 具有一定的複雜度
系統基於Spring Boot2.1技術,前端採用了Layui2.4。數據庫以MySQL/Oracle/Postgres/SQLServer為實例,理論上是跨數據庫平臺.
基本技術棧來源於我為電子工業出版社編寫的的<<spring>> (這本書每一章也有各種例子,但Springboot-plus 更偏向於應用而不是教學)/<spring>
當前版本:1.2.0
1 使用說明
1.1 安裝說明
建議在徹底熟悉plus系統之前,先暫時不要修改其他配置選項,免得系統無法訪問
本系統基於Spring Boot 2 ,因此請務必使用JDK8,且打開編譯選項parameters(點擊瞭解parameters), 並重新編譯工程,如果你沒有使用Java8的 parameters 特性,系統不能正常使用
從Git上獲取代碼後,通過IDE導入此Maven工程,包含倆個子工程
- admin-core ,核心包,包含了緩存,數據權限,公用的JS和HTML頁面。
- admin-console, 系統管理功能,包含了用戶,組織機構,角色,權限,數據權限,代碼生成等管理功能
com.ibeetl.admin.CosonleApplication 是系統啟動類,在admin-console包下,在運行這個之前,還需要初始化數據庫,位於doc/starter-mysql.sql,目前只提供mysql, oracle, postgresql腳本。理論上支持所有數據庫
還需要修改SpringBoot配置文件application.properties,修改你的數據庫地址和訪問用戶
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/starter?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&useSSL=false
spring.datasource.username=root
spring.datasource.password=123456
運行CosonleApplication,然後訪問http://127.0.0.1:8080/ 輸入admin/123456 則可以直接登錄進入管理系統
如果成功啟動後運行報錯:變量userId未定義,位於第6行,那是因為你沒有啟用parameters,啟用後,需要clean&build整個工程
1.2 創建子系統
SpringBoot-plus 是一個適合大系統拆分成小系統的架構,或者是一個微服務系統,因此,如果你需要創建自己的業務系統,比如,一個CMS子系統,建議你不要在SpringBoot-Plus 添加代碼,應該是新建立一個maven工程,依賴admin-core,或者依賴admin-console(如果你有後臺管理需求,通常都有,但不是必須的)
創建子系統,可以進入代碼生成>子系統生成, 輸入maven項目路徑,還有包名,就可以直接生成一個可運行的基於SpringBoot-Plus 的子系統,所有代碼可以在個項目裡些完成,直接運行MainApplication,
@SpringBootApplication
@EnableCaching
@ComponentScan(basePackages= {"com.corp.xxx","com.ibeetl.admin"})
public class MainApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
public static void main(String[] args) {
SpringApplication.run(MainApplication.class, args);
}
}
子系統包含了admin-core和admin-console, 因此你可以直接在子系統裡使用core和console提供的所有功能,通過子系統的console功能的代碼生成來完成進一步開發
子系統可以單獨運行和維護,也可以集成到nginx後構成一個龐大的企業應用系統
1.2.1 配置子系統
子系統不需要做任何配置即可在IDE裡直接運行,如果你想打包城jar方式運行,則需要添加
<build>
<plugins>
<plugin>
<groupid>org.springframework.boot/<groupid>
<artifactid>spring-boot-maven-plugin/<artifactid>
/<plugin>
/<plugins>
/<build>
如果你想打包成war放到tomcat下運行,需要修改maven打包為war
<packaging>war/<packaging>
1.2.2 菜單系統
系統默認提供三種類型菜單
- 系統級菜單,出現在頁面頂部,表示一個子系統
- 導航菜單,出現在頁面左邊,點擊導航將打開其下所有菜單
- 菜單,點開菜單將定位到頁面,菜單必須關聯到一個功能點。
建議新建立一個子系統來放置新功能
SpringPlus-Boot 並非以菜單或者按鈕來組織整個系統,而是以功能點來組織整個系統提供的功能。如果要使得菜單生效,你必須要先常見一個功能點並且功能點有一個訪問地址,然後將此菜單關聯到這個功能點
SpringBoot-Plus 先建立功能點是個好習慣,功能點被組織成一顆樹,代表了系統應該提供功能的功能,我們看代碼就會看到,功能點跟菜單,跟權限,和數據權限都有密切關係
1.2.2 添加代碼
可以參考1.3業務代碼生成生成初始化的代碼,業務代碼生成了14個文件,包含前後端所有代碼,可以通過生成來了解代碼習作規範
1.3 業務代碼生成
在介紹如何利用Plus開發系統之前,先介紹代碼生成功能,此功能可以生成前後端代碼總計14個文件,你可以通過預覽功能瞭解如何開發這個系統
代碼生成針對表進行代碼生成,包括JS,JAVA,SQL和HTML,可以通過預覽功能直接預覽。在生成代碼到本地前,有些參數需要修改,否則,代碼生成後顯示的都是英文
- 顯示字段 : 當此實體顯示在任何地方的時候,能代表此實體的名稱,比如用戶名,組織機構名
- 變量名:可以自己設定一個較短的名字,此變量名會用於前後端的變量
- urlBase:你規劃的子系統,最後訪問路徑是urlBase+變量名字
- system: 存放sql目錄的的名稱
其他修改的地方有
是否包含導入導出,如果選擇,則會生成導入導出的代碼,導入導出模板則需要參考已有功能(比如數據字典)來完成
是否包含附件管理,如果選擇,則業務對象可以關聯一組附件,比如客戶關聯一組附件,或者申請信息關聯一組附件。
字段信息的顯示名字,這個用於前端列表,表單的顯示,應當輸入中文名字
作為搜索,可以勾選幾個搜索條件,系統自動生成一個搜索配置類
如果字段關聯數據字典,那麼設置一個數據字典,這樣,生成的界面將會變成一個下拉列表
1.3.1 前端代碼
前端代碼採用了layui的JS框架,使用了按需加載的方式,文檔參考 http://www.layui.com/doc/base/infrastructure.html.
- index.js: 系統入口JS,包含了查詢和表格
- add.js : 新增操作的所有JS
- edit.js: 編輯操作的所有JS
- del.js: 刪除操作的所有JS
基礎JS
- Common.js: 封裝了通常JS功能,如jquery的post方法,layui的窗口方法
- Lib.js 封裝了業務相關方法,如submitForm,loadOrgPanel等方法
1.3.2 HTML代碼
頁面採用layui,文檔參考 http://www.layui.com/demo/
模板語言了使用Beetl,文檔參考ibeetl.com
- index.html: 功能首頁
- add.html: 新增首頁
- edit.html: 編輯操作首頁
採用layui的好處是自帶了頁面和組件還有JS的管理,能完成大多數業務需求
基礎UI組件:
- orgInput.tag.html 組織機構輸入框
- simpleDictSelect.tag.html 字典下拉列表
- simpleDataSelect.tag 包含key-value的下拉列表
- searchForm.tag.html 通用搜索表單
- submitButtons.tag.html 提交按鈕
- accessButton.tag.html 普通按鈕(含權限)
- attachment.tag.html 附件管理組件
閱讀更多 儒雅程序員 的文章