javascript
毕设/私活/兼职必备,一个挣钱的开源【SpringBoot+Spring Security+MyBatis Plus】脚手架
🍅 作者主頁:Java李楊勇?
🍅 簡介:Java領(lǐng)域優(yōu)質(zhì)創(chuàng)作者🏆、Java李楊勇公號作者? ?簡歷模板、學(xué)習(xí)資料、面試題庫、技術(shù)互助【關(guān)注我,都給你】
🍅 歡迎點(diǎn)贊 👍 收藏 ?留言 📝 ??
前言:
? ? ? ?前段時(shí)間也和大家分享了一個(gè)關(guān)于Springboot+vue的前后端分享的腳手架、最近剛好有同學(xué)找到我叫我?guī)退鲆粋€(gè)簡單的酒莊管理系統(tǒng)、于是就找到個(gè)這個(gè)開源框架來試試看、這是個(gè)什么項(xiàng)目呢,它就是是集SpringBoot、MyBatis、Shiro于一體的標(biāo)準(zhǔn)項(xiàng)目框架、讓我們解放雙手 ? 從現(xiàn)在開始看一下吧。不管是用來學(xué)習(xí)技術(shù)還是接私活/畢設(shè)/兼職掙錢、都是非常不錯(cuò)的喲、建議大家收藏起來、文末我把源碼給大家。
? ? ? ??這豈不是太簡單了 分分鐘就能做好的嗎、哈哈、不說廢話了、今天就給大家演示一下利用一個(gè)開源框架寫一個(gè)吧
這個(gè)開源項(xiàng)目主要特點(diǎn):
- 這個(gè)框架采用SpringBoot、MyBatis、Shiro框架,開發(fā)的一套權(quán)限系統(tǒng),極低門檻,拿來即用。設(shè)計(jì)之初,也非常注重安全性,為自己做學(xué)習(xí)使用以及簡單企業(yè)系統(tǒng)都是可以的,讓我們的開發(fā)變得很簡單。
- 靈活的權(quán)限控制,可控制到頁面或按鈕,滿足絕大部分的權(quán)限需求、根據(jù)管理員靈活控制權(quán)限
- 完善的部門管理及數(shù)據(jù)權(quán)限,通過注解實(shí)現(xiàn)數(shù)據(jù)權(quán)限的控制、具體到前端后代碼
- 完善的XSS防范及腳本過濾,徹底杜絕XSS攻擊
- 支持MySQL、Oracle、SQL Server、PostgreSQL等主流數(shù)據(jù)庫
- 后期推薦進(jìn)行云服務(wù)器進(jìn)行部署項(xiàng)目
內(nèi)置功能模板:
用戶管理:用戶是系統(tǒng)操作者,該功能主要完成系統(tǒng)用戶配置。
部門管理:配置系統(tǒng)組織機(jī)構(gòu)(公司、部門、小組),樹結(jié)構(gòu)展現(xiàn)支持?jǐn)?shù)據(jù)權(quán)限。
崗位管理:配置系統(tǒng)用戶所屬擔(dān)任職務(wù)。
菜單管理:配置系統(tǒng)菜單,操作權(quán)限,按鈕權(quán)限標(biāo)識等。
角色管理:角色菜單權(quán)限分配、設(shè)置角色按機(jī)構(gòu)進(jìn)行數(shù)據(jù)范圍權(quán)限劃分。
字典管理:對系統(tǒng)中經(jīng)常使用的一些較為固定的數(shù)據(jù)進(jìn)行維護(hù)。
參數(shù)管理:對系統(tǒng)動(dòng)態(tài)配置常用參數(shù)。
通知公告:系統(tǒng)通知公告信息發(fā)布維護(hù)。
操作日志:系統(tǒng)正常操作日志記錄和查詢;系統(tǒng)異常信息日志記錄和查詢。
登錄日志:系統(tǒng)登錄日志記錄查詢包含登錄異常。
在線用戶:當(dāng)前系統(tǒng)中活躍用戶狀態(tài)監(jiān)控。
定時(shí)任務(wù):在線(添加、修改、刪除)任務(wù)調(diào)度包含執(zhí)行結(jié)果日志。
代碼生成:前后端代碼的生成(java、html、xml、sql)支持CRUD下載 。
系統(tǒng)接口:根據(jù)業(yè)務(wù)代碼自動(dòng)生成相關(guān)的api接口文檔。
服務(wù)監(jiān)控:監(jiān)視當(dāng)前系統(tǒng)CPU、內(nèi)存、磁盤、堆棧等相關(guān)信息。
緩存監(jiān)控:對系統(tǒng)的緩存信息查詢,命令統(tǒng)計(jì)等。
在線構(gòu)建器:拖動(dòng)表單元素生成相應(yīng)的HTML代碼。
連接池監(jiān)視:監(jiān)視當(dāng)期系統(tǒng)數(shù)據(jù)庫連接池狀態(tài),可進(jìn)行分析SQL找出系統(tǒng)性能瓶頸。
?
項(xiàng)目介紹:
?項(xiàng)目實(shí)際分為4個(gè)模塊:
- renren-common為公共模塊,其他模塊以jar包的形式引入進(jìn)去,主要提供些工具類,以及renren-admin、renren-api模塊公共的entity、mapper、dao、service服務(wù),防止一個(gè)功能重復(fù)多次編寫代碼。
- renren-admin為后臺模塊,也是系統(tǒng)的核心,用來開發(fā)后臺管理系統(tǒng),可以打包成jar,部署到服務(wù)器上運(yùn)行,或者打包成war,放到Tomcat8.5+容器里運(yùn)行。
- renren-api為接口模塊,主要是簡化APP開發(fā),如:為微信小程序、IOS、Android提供接口,擁有一套單獨(dú)的用戶體系,沒有與renren-admin用戶表共用,因?yàn)閞enren-admin用戶表里存放的是企業(yè)內(nèi)部人員賬號,具有后臺管理員權(quán)限,可以登錄后臺管理系統(tǒng),而renren-api用戶表里存放的是我們的真實(shí)用戶,不具備登錄后臺管理系統(tǒng)的權(quán)限。renren-api主要是實(shí)現(xiàn)了用戶注冊、登錄、接口權(quán)限認(rèn)證、獲取登錄用戶等功能,為APP接口的安全調(diào)用,提供一套優(yōu)雅的解決方案,從而簡化APP接口開發(fā)。
- renren-generator為代碼生成器模塊,只需在MySQL數(shù)據(jù)庫里,創(chuàng)建好表結(jié)構(gòu),就可以生成新增、修改、刪除、查詢、導(dǎo)出等操作的代碼,包括entity、mapper、dao、service、controller、頁面等所有代碼,項(xiàng)目開發(fā)神器。
? ?這邊由于我個(gè)人沒有用到api/微信小程序、IOS、Android提供接口的業(yè)務(wù)以及generator代碼生成器模塊 、所以可以根據(jù)實(shí)際情況刪除和添加模塊
本地部署項(xiàng)目:
?下載地址:
git clone https://gitee.com/renrenio/renren-security.git- 環(huán)境要求JDK1.8、Tomcat8.5+、MySQL5.5+
- 通過git,下載renren-security源碼,如下:
- 創(chuàng)建數(shù)據(jù)庫 renren_security ,數(shù)據(jù)庫編碼為 UTF-8
- 執(zhí)行數(shù)據(jù)庫腳本,如MySQL數(shù)據(jù)庫,則執(zhí)行 db/mysql.sql 文件,初始化數(shù)據(jù)
- 修改application-dev.yml,更改數(shù)據(jù)庫賬號和密碼
?設(shè)置攔截放行:
?靜態(tài)資源文件以及登錄和swagger-ui接口文檔等設(shè)置放行
@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;}項(xiàng)目啟動(dòng):?
- 運(yùn)行io.renren.AdminApplication.java的main方法,則可啟動(dòng)renren-admin項(xiàng)目
- 項(xiàng)目訪問路徑: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
這是稍微經(jīng)過改造之后的樣子
改造前:
改造后:
加一些業(yè)務(wù)表和刪除隱藏掉一些不必要的功能模塊
?核心技術(shù):
SpringBoot框架
? ?Spring Boot是一款開箱即用框架,提供各種默認(rèn)配置來簡化項(xiàng)目配置。讓我們的Spring應(yīng)用變的更輕量化、更快的入門。 在主程序執(zhí)行main函數(shù)就可以運(yùn)行。你也可以打包你的應(yīng)用為jar并通過使用java -jar來運(yùn)行你的Web應(yīng)用。它遵循"約定優(yōu)先于配置"的原則, 使用SpringBoot只需很少的配置,大部分的時(shí)候直接使用默認(rèn)的配置即可。同時(shí)可以與Spring Cloud的微服務(wù)無縫結(jié)合。
Spring Boot2.x版本環(huán)境要求必須是jdk8或以上版本,服務(wù)器Tomcat8或以上版本
優(yōu)點(diǎn)
- 使編碼變得簡單: 推薦使用注解。
- 使配置變得簡單: 自動(dòng)配置、快速集成新技術(shù)能力 沒有冗余代碼生成和XML配置的要求
- 使部署變得簡單: 內(nèi)嵌Tomcat、Jetty、Undertow等web容器,無需以war包形式部署
- 使監(jiān)控變得簡單: 提供運(yùn)行時(shí)的應(yīng)用監(jiān)控
- 使集成變得簡單: 對主流開發(fā)框架的無配置集成。
- 使開發(fā)變得簡單: 極大地提高了開發(fā)快速構(gòu)建項(xiàng)目、部署效率。
Spring Security安全控制
1、介紹
Spring Security是一個(gè)能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架。
2、功能
Authentication?認(rèn)證,就是用戶登錄
Authorization?授權(quán),判斷用戶擁有什么權(quán)限,可以訪問什么資源
安全防護(hù),跨站腳本攻擊,session攻擊等
非常容易結(jié)合Spring進(jìn)行使用
3、Spring Security與Shiro的區(qū)別
相同點(diǎn)
1、認(rèn)證功能? 2、授權(quán)功能? 3、加密功能
4、會話管理? 5、緩存支持? 6、rememberMe功能
不同點(diǎn)
優(yōu)點(diǎn):
1、Spring Security基于Spring開發(fā),項(xiàng)目如果使用Spring作為基礎(chǔ),配合Spring Security做權(quán)限更加方便。而Shiro需要和Spring進(jìn)行整合開發(fā)
2、Spring Security功能比Shiro更加豐富,例如安全防護(hù)方面
3、Spring Security社區(qū)資源相對比Shiro更加豐富
缺點(diǎn):
1)Shiro的配置和使用比較簡單,Spring Security上手復(fù)雜些
2)Shiro依賴性低,不需要依賴任何框架和容器,可以獨(dú)立運(yùn)行。Spring Security依賴Spring容器
? ? ? 今天推薦這個(gè)SpringBoot開源項(xiàng)目還是比較不錯(cuò)的、項(xiàng)目是快速開發(fā)腳手架,代碼質(zhì)量各方面的也還不錯(cuò)、適合用來做自己學(xué)習(xí)技術(shù)或者或自己兼職私活接單都是可以的喲、喜歡的朋友點(diǎn)一個(gè)一健三聯(lián)支持下喲
獲取源碼:
總體來說這個(gè)開源項(xiàng)目功能相對還是比較優(yōu)秀的、適合大家學(xué)習(xí)參考使用
打卡更新java文章 49 / 100 天、大家可以點(diǎn)贊、收藏、關(guān)注、評論我啦 、
查看博主主頁聯(lián)系或下方微信公眾號獲取更多喲
精彩專欄推薦:
Java畢設(shè)項(xiàng)目精品實(shí)戰(zhàn)案例《100套》
HTML5大作業(yè)實(shí)戰(zhàn)案例《100套》
總結(jié)
以上是生活随笔為你收集整理的毕设/私活/兼职必备,一个挣钱的开源【SpringBoot+Spring Security+MyBatis Plus】脚手架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: creo外观库_Proe软件技巧,颜色库
- 下一篇: HTML+CSS+JS实现 ❤️520爱