🍅 作者主頁:Java李楊勇
🍅 簡介:Java領域優質創作者🏆、Java李楊勇公號作者? 簡歷模板、學習資料、面試題庫、技識訓助【關注我,都給你】
🍅 歡迎點贊 👍 收藏 ?留言 📝
前言:
前段時間也和大家分享了一個關于Springboot+vue的前后端分享的腳手架、最近剛好有同學找到我叫我幫他做一個簡單的酒莊管理系統、于是就找到個這個開源框架來試試看、這是個什么專案呢,它就是是集SpringBoot、MyBatis、Shiro于一體的標準專案框架、讓我們解放雙手 ? 從現在開始看一下吧,不管是用來學習技識訓是接私活/畢設/兼職掙錢、都是非常不錯的喲、建議大家收藏起來、文末我把原始碼給大家,

這豈不是太簡單了 分分鐘就能做好的嗎、哈哈、不說廢話了、今天就給大家演示一下利用一個開源框架寫一個吧
這個開源專案主要特點:
- 這個框架采用SpringBoot、MyBatis、Shiro框架,開發的一套權限系統,極低門檻,拿來即用,設計之初,也非常注重安全性,為自己做學習使用以及簡單企業系統都是可以的,讓我們的開發變得很簡單,
- 靈活的權限控制,可控制到頁面或按鈕,滿足絕大部分的權限需求、根據管理員靈活控制權限
- 完善的部門管理及資料權限,通過注解實作資料權限的控制、具體到前端后代碼
- 完善的XSS防范及腳本過濾,徹底杜絕XSS攻擊
- 支持MySQL、Oracle、SQL Server、PostgreSQL等主流資料庫
- 后期推薦進行云服務器進行部署專案
內置功能模板:
用戶管理:用戶是系統操作者,該功能主要完成系統用戶配置,
部門管理:配置系統組織機構(公司、部門、小組),樹結構展現支持資料權限,
崗位管理:配置系統用戶所屬擔任職務,
選單管理:配置系統選單,操作權限,按鈕權限標識等,
角色管理:角色選單權限分配、設定角色按機構進行資料范圍權限劃分,
字典管理:對系統中經常使用的一些較為固定的資料進行維護,
引數管理:對系統動態配置常用引數,
通知公告:系統通知公告資訊發布維護,
操作日志:系統正常操作日志記錄和查詢;系統例外資訊日志記錄和查詢,
登錄日志:系統登錄日志記錄查詢包含登錄例外,
在線用戶:當前系統中活躍用戶狀態監控,
定時任務:在線(添加、修改、洗掉)任務調度包含執行結果日志,
代碼生成:前后端代碼的生成(java、html、xml、sql)支持CRUD下載 ,
系統介面:根據業務代碼自動生成相關的api介面檔案,
服務監控:監視當前系統CPU、記憶體、磁盤、堆疊等相關資訊,
快取監控:對系統的快取資訊查詢,命令統計等,
在線構建器:拖動表單元素生成相應的HTML代碼,
連接池監視:監視當期系統資料庫連接池狀態,可進行分析SQL找出系統性能瓶頸,
專案介紹:
專案實際分為4個模塊:
- renren-common為公共模塊,其他模塊以jar包的形式引入進去,主要提供些工具類,以及renren-admin、renren-api模塊公共的entity、mapper、dao、service服務,防止一個功能重復多次撰寫代碼,
- renren-admin為后臺模塊,也是系統的核心,用來開發后臺管理系統,可以打包成jar,部署到服務器上運行,或者打包成war,放到Tomcat8.5+容器里運行,
- renren-api為介面模塊,主要是簡化APP開發,如:為微信小程式、IOS、Android提供介面,擁有一套單獨的用戶體系,沒有與renren-admin用戶表共用,因為renren-admin用戶表里存放的是企業內部人員賬號,具有后臺管理員權限,可以登錄后臺管理系統,而renren-api用戶表里存放的是我們的真實用戶,不具備登錄后臺管理系統的權限,renren-api主要是實作了用戶注冊、登錄、介面權限認證、獲取登錄用戶等功能,為APP介面的安全呼叫,提供一套優雅的解決方案,從而簡化APP介面開發,
- renren-generator為代碼生成器模塊,只需在MySQL資料庫里,創建好表結構,就可以生成新增、修改、洗掉、查詢、匯出等操作的代碼,包括entity、mapper、dao、service、controller、頁面等所有代碼,專案開發神器,

這邊由于我個人沒有用到api/微信小程式、IOS、Android提供介面的業務以及generator代碼生成器模塊 、所以可以根據實際情況洗掉和添加模塊
本地部署專案:
下載地址:
git clone https://gitee.com/renrenio/renren-security.git
- 環境要求JDK1.8、Tomcat8.5+、MySQL5.5+
- 通過git,下載renren-security原始碼,如下:

- 創建資料庫 renren_security ,資料庫編碼為 UTF-8
- 執行資料庫腳本,如MySQL資料庫,則執行 db/mysql.sql 檔案,初始化資料
- 修改application-dev.yml,更改資料庫賬號和密碼
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/renren-chateau?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: root
password: 123456
initial-size: 10
max-active: 100
min-idle: 10
max-wait: 60000
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 300000
#Oracle需要打開注釋
#validation-query: SELECT 1 FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false
stat-view-servlet:
enabled: true
url-pattern: /druid/*
#login-username: admin
#login-password: admin
filter:
stat:
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: false
wall:
config:
multi-statement-allow: true
##多資料源的配置,需要參考renren-dynamic-datasource
#dynamic:
# datasource:
# slave1:
# driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
# url: jdbc:sqlserver://localhost:1433;DatabaseName=renren_security
# username: sa
# password: 123456
# slave2:
# driver-class-name: org.postgresql.Driver
# url: jdbc:postgresql://localhost:5432/renren_security
# username: renren
# password: 123456
設定攔截放行:
靜態資源檔案以及登錄和swagger-ui介面檔案等設定放行
@Bean("shiroFilter")
public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
shiroFilter.setLoginUrl("/login.html");
shiroFilter.setUnauthorizedUrl("/");
Map<String, String> filterMap = new LinkedHashMap<>();
filterMap.put("/swagger/**", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/swagger-ui.html", "anon");
filterMap.put("/webjars/**", "anon");
filterMap.put("/swagger-resources/**", "anon");
filterMap.put("/statics/**", "anon");
filterMap.put("/login.html", "anon");
filterMap.put("/sys/login", "anon");
filterMap.put("/favicon.ico", "anon");
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/**", "authc");
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
專案啟動:
- 運行io.renren.AdminApplication.java的main方法,則可啟動renren-admin專案
- 專案訪問路徑:http://localhost:8080/renren-admin

- 賬號密碼:admin/admin
- Swagger路徑:http://localhost:8080/renren-admin/swagger/index.html
- Swagger注解路徑:http://localhost:8080/renren-admin/swagger-ui.html
這是稍微經過改造之后的樣子

改造前:

改造后:
加一些業務表和洗掉隱藏掉一些不必要的功能模塊


核心技術:
SpringBoot框架 Spring Boot是一款開箱即用框架,提供各種默認配置來簡化專案配置,讓我們的Spring應用變的更輕量化、更快的入門, 在主程式執行main函式就可以運行,你也可以打包你的應用為jar并通過使用java -jar來運行你的Web應用,它遵循"約定優先于配置"的原則, 使用SpringBoot只需很少的配置,大部分的時候直接使用默認的配置即可,同時可以與Spring Cloud的微服務無縫結合,
Spring Boot2.x版本環境要求必須是jdk8或以上版本,服務器Tomcat8或以上版本
優點
- 使編碼變得簡單: 推薦使用注解,
- 使配置變得簡單: 自動配置、快速集成新技術能力 沒有冗余代碼生成和XML配置的要求
- 使部署變得簡單: 內嵌Tomcat、Jetty、Undertow等web容器,無需以war包形式部署
- 使監控變得簡單: 提供運行時的應用監控
- 使集成變得簡單: 對主流開發框架的無配置集成,
- 使開發變得簡單: 極大地提高了開發快速構建專案、部署效率,
Spring Security安全控制
1、介紹Spring Security是一個能夠為基于Spring的企業應用系統提供宣告式的安全訪問控制解決方案的安全框架,
2、功能Authentication 認證,就是用戶登錄Authorization 授權,判斷用戶擁有什么權限,可以訪問什么資源
安全防護,跨站腳本攻擊,session攻擊等
非常容易結合Spring進行使用
3、Spring Security與Shiro的區別
相同點
1、認證功能 2、授權功能 3、加密功能
4、會話管理 5、快取支持 6、rememberMe功能
不同點
優點:
1、Spring Security基于Spring開發,專案如果使用Spring作為基礎,配合Spring Security做權限更加方便,而Shiro需要和Spring進行整合開發
2、Spring Security功能比Shiro更加豐富,例如安全防護方面
3、Spring Security社區資源相對比Shiro更加豐富
缺點:
1)Shiro的配置和使用比較簡單,Spring Security上手復雜些
2)Shiro依賴性低,不需要依賴任何框架和容器,可以獨立運行,Spring Security依賴Spring容器
今天推薦這個SpringBoot開源專案還是比較不錯的、專案是快速開發腳手架,代碼質量各方面的也還不錯、適合用來做自己學習技識訓者或自己兼職私活接單都是可以的喲、喜歡的朋友點一個一健三聯支持下喲
獲取原始碼:
總體來說這個開源專案功能相對還是比較優秀的、適合大家學習參考使用
打卡更新java文章 49 / 100 天、大家可以點贊、收藏、關注、評論我啦 、
查看博主主頁聯系或下方微信公眾號獲取更多喲
精彩專欄推薦:
Java畢設專案精品實戰案例《100套》
HTML5大作業實戰案例《100套》
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/300237.html
標籤:java
