人人開源之renren-security

renren-security,從這周開始我將要對其比較詳細的研究,以前的研究只不過是比較淺的。正如在這篇文章讀讀《編寫高質量代碼:改善Java程序的151條建議》中說過不要重複造輪子。html

renren-security雖然源代碼對外開放,可是目前相關的詳細文檔仍是須要付費。可是我我的以爲付費也行,不付費也行。對於目前時間相對比較富足。我以爲它的技術架構就是咱們Java的那一套,本質上並不會有多麼大的變化。我以爲有必要鍛鍊下自個人解決問題和學習能力。由此,我決定對其開始研究。爲期時間爲一天。一天爲24小時。工做日也就八個小時到九個小時左右。工做日的時間,不是特別夠,由於我還得梳理最近的項目整個架構,好比若是在擴展會怎麼樣和整個流程的邏輯合理性還有待驗證,這對於我和個人技術團隊成員來講是一件大事,主要是優先級。可是開源項目優先級其實也不低。按照咱們經理的構想,再開發一套相似的系統,應當是很是快的完成,而不是咱們Java團隊花了整整兩個月或三個月才完成。因此咱們須要藉助一個有效的開源框架幫助咱們提高開發效率。java

 

以下關於項目說明、特色、數據權限設計思想、項目結構、技術選型、軟件需求、本地部署、分佈式部署、項目演示、如何交流反饋貢獻等內容,均來自該地址:https://gitee.com/renrenio/renren-securitymysql

之因此列舉出來,是想比較詳細的闡述一點:在學習一項開源技術時,最好仍是對於的背景仍是要多少了解和熟悉,由於對於你在接下來的學習中或者是解決某些問題是有必定的幫助的。git

起碼一點,你至少清楚一點,這些技術棧你多少精通、用過、熟悉、瞭解過、聽過等等。github

 

項目說明redis

  • 採用SpringBoot、MyBatis、Shiro框架,開發的一套權限系統,極低門檻,拿來即用。設計之初,就很是注重安全性,爲企業系統保駕護航,讓一切都變得如此簡單。
  • 提供了代碼生成器,只需編寫30%左右代碼,其他的代碼交給系統自動生成,可快速完成開發任務
  • 支持MySQL、Oracle、SQL Server、PostgreSQL等主流數據庫

 

具備以下特色sql

  • 靈活的權限控制,可控制到頁面或按鈕,知足絕大部分的權限需求
  • 完善的部門管理及數據權限,經過註解實現數據權限的控制
  • 完善的XSS防範及腳本過濾,完全杜絕XSS攻擊
  • 支持分佈式部署,session存儲在redis中
  • 友好的代碼結構及註釋,便於閱讀及二次開發
  • 引入quartz定時任務,可動態完成任務的添加、修改、刪除、暫停、恢復及日誌查看等功能
  • 頁面交互使用Vue2.x,極大的提升了開發效率
  • 引入swagger文檔支持,方便編寫API接口文檔

 

數據權限設計思想數據庫

  • 管理員管理、角色管理、部門管理,可操做本部門及子部門數據
  • 菜單管理、定時任務、參數管理、字典管理、系統日誌,沒有數據權限
  • 業務功能,按照用戶數據權限,查詢、操做數據【沒有本部門數據權限,也能查詢本人數據】

 

項目結構api

renren-security
├─renren-common     公共模塊
│ 
├─renren-admin      管理後臺
│    ├─db  數據庫SQL腳本
│    │ 
│    ├─modules  模塊
│    │    ├─job 定時任務
│    │    ├─oss 文件存儲
│    │    └─sys 系統管理(核心)
│    │ 
│    └─resources 
│        ├─mapper   MyBatis文件
│        ├─statics  靜態資源
│        ├─template 系統頁面
│        │    ├─modules      模塊頁面
│        │    ├─index.html   AdminLTE主題風格(默認主題)
│        │    └─index1.html  Layui主題風格
│        └─application.yml   全局配置文件
│       
│ 
├─renren-api        API服務
│ 
├─renren-generator  代碼生成器
│        └─resources 
│           ├─mapper   MyBatis文件
│           ├─template 代碼生成器模板(可增長或修改相應模板)
│           ├─application.yml    全局配置文件
│           └─generator.properties   代碼生成器,配置文件
│


技術選型:緩存

  • 核心框架:Spring Boot 2.0
  • 安全框架:Apache Shiro 1.4
  • 視圖框架:Spring MVC 5.0
  • 持久層框架:MyBatis 3.3
  • 定時器:Quartz 2.3
  • 數據庫鏈接池:Druid 1.1
  • 日誌管理:SLF4J 1.七、Log4j
  • 頁面交互:Vue2.x

 

軟件需求

  • JDK1.8
  • MySQL5.5+
  • Maven3.0+

 

本地部署

  • 經過git下載源碼
  • 建立數據庫renren_security,數據庫編碼爲UTF-8
  • 執行db/mysql.sql文件,初始化數據【按需導入表結構及數據】
  • 修改application-dev.yml文件,更新MySQL帳號和密碼
  • 在renren-security目錄下,執行mvn clean install

 

 

分佈式部署

  • 分佈式部署,須要安裝redis,並配置config.properties裏的redis信息
  • 須要配置【renren.redis.open=true】,表示開啓redis緩存
  • 須要配置【renren.shiro.redis=true】,表示把shiro session存到redis裏

 

項目演示

 


如何交流、反饋、參與貢獻?

 

小結:

今天僅僅只是一個背景介紹,接下來會有對應的簡單實戰,你能夠理解爲簡單的又淺入深(固然了,不是那種深刻到源碼分析的那種),是由淺度使用到深度使用。但願能對你們有必定的幫助。

相關文章
相關標籤/搜索