niaobulashi-一個基於springboot shrio的權限管理系統
github項目地址:https://github.com/niaobulashi/niaobulashi
springboot學習地址:http://www.ityouknow.com/spring-boot.html
shiro學習地址:https://jinnianshilongnian.iteye.com/blog/2018398
歡迎大家star,fork,一起探討學習
項目說明
- 採用SpringBoot、MyBatis、Shiro框架,開發的一套權限系統,極低門檻,拿來即用。設計之初,就非常注重安全性,爲企業系統保駕護航,讓一切都變得如此簡單。
- 提供了代碼生成器,只需編寫30%左右代碼,其餘的代碼交給系統自動生成,可快速完成開發任務
- 支持MySQL、Oracle、SQL Server、PostgreSQL等主流數據庫
項目結構
niaobulashi
├─niaobulashi-admin 管理後臺
│ ├─db 數據庫SQL腳本
│ │
│ ├─modules 模塊
│ │ ├─job 定時任務
│ │ ├─oss 文件存儲
│ │ └─sys 系統管理(核心)
│ │
│ └─resources
│ ├─mapper MyBatis文件
│ ├─statics 靜態資源
│ ├─template 系統頁面
│ │ ├─modules 模塊頁面
│ │ ├─index.html AdminLTE主題風格(默認主題)
│ │ └─index1.html 主題風格
│ └─application.yml 全局配置文件
├─niaobulashi-api API服務
├─niaobulashi-common 公共模塊
├─niaobulashi-dynamic-datasource 多數據源
├─niaobulashi-generator 代碼生成器
│ └─resources
│ ├─mapper MyBatis文件
│ ├─template 代碼生成器模板(可增加或修改相應模板)
│ ├─application.yml 全局配置文件
│ └─generator.properties 代碼生成器,配置文件
│
項目模塊
- niaobulashi-common爲公共模塊,其他模塊以jar包的形式引入進去,主要提供些工具類,以及renren-admin、renren-api模塊公共的entity、mapper、dao、service服務,防止一個功能重複多次編寫代碼。
- niaobulashi-admin爲後臺模塊,也是系統的核心,用來開發後臺管理系統,可以打包成jar,部署到服務器上運行,或者打包成war,放到Tomcat8.5+容器裏運行。
- niaobulashi-api爲接口模塊,主要是簡化APP開發,如:爲微信小程序、IOS、Android提供接口,擁有一套單獨的用戶體系,沒有與renren-admin用戶表共用,因爲renren-admin用戶表裏存放的是企業內部人員賬號,具有後臺管理員權限,可以登錄後臺管理系統,而renren-api用戶表裏存放的是我們的真實用戶,不具備登錄後臺管理系統的權限。renren-api主要是實現了用戶註冊、登錄、接口權限認證、獲取登錄用戶等功能,爲APP接口的安全調用,提供一套優雅的解決方案,從而簡化APP接口開發。
- niaobulashi-generator爲代碼生成器模塊,只需在MySQL數據庫裏,創建好表結構,就可以生成新增、修改、刪除、查詢、導出等操作的代碼,包括entity、mapper、dao、service、controller、頁面等所有代碼,項目開發神器。可以作爲單獨的項目運行,我已經將這部分的模塊移植到了niaobulashi-admin
技術選型
- 核心框架:Spring Boot 2.1
- 安全框架:Apache Shiro 1.4
- 視圖框架:Spring MVC 5.0
- 持久層框架:MyBatis 3.5
- 定時器:Quartz 2.3
- 數據庫連接池:Druid 1.1
- 日誌管理:SLF4J 1.7、Log4j
- 頁面交互:Vue2.x
軟件需求
- JDK12
- MySQL5.5+
- Maven3.0+
本地部署
- idea通過:https://github.com/niaobulashi/niaobulashi 進行clone到本地
- 在項目目錄:resources/db找到數據庫文件,部署到本地
- 修改配置文件application-test.yml,數據庫改爲本地的用戶名和密碼
- 直接啓動,訪問:localhost:8080
Linux部署
- 打包成jar,在主項目niaobulashi上進行打包,mvn clean install
- 會生成相應項目的jar包,放在Linux目標目錄下,執行java -jar 包名
運行可能會遇到的問題
- 啓動可能報錯,mysql嚴格區分大小寫,可能找不到表,解決方案:mysql不區分大小寫
- 沒有/tmp/spring.log目錄權限,解決方案:在root用戶下,添加寫權限sudo chmod 777 spring.log
- 登陸頁面的驗證碼顯示亂碼,原因:linux沒有安裝字體,解決方案:linux安裝字體
根據項目信息截圖
ps:日報管理模塊沒有實際功能,知識個菜單而已,後期進行維護
歡迎一起討論和學習