renren-security,从这周开始我将要对其比较详细的研究,之前的研究只不过是比较浅的。正如在这篇文章读读《编写高质量代码:改善Java程序的151条建议》中说过不要重复造轮子。

renren-security虽然源代码对外开放,但是目前相关的详细文档还是需要付费。但是我个人觉得付费也行,不付费也行。对于目前时间相对比较富足。我觉得它的技术架构就是我们Java的那一套,本质上并不会有多么大的变化。我觉得有必要锻炼下自我的解决问题和学习能力。由此,我决定对其开始研究。为期时间为一天。一天为24小时。工作日也就八个小时到九个小时左右。工作日的时间,不是特别够,因为我还得梳理最近的项目整个架构,比如如果在扩展会怎么样和整个流程的逻辑合理性还有待验证,这对于我和我的技术团队成员来说是一件大事,主要是优先级。但是开源项目优先级其实也不低。按照我们经理的构想,再开发一套类似的系统,应当是非常快的完成,而不是我们Java团队花了整整两个月或三个月才完成。所以我们需要借助一个有效的开源框架帮助我们提升开发效率。

如下关于项目说明、特点、数据权限设计思想、项目结构、技术选型、软件需求、本地部署、分布式部署、项目演示、如何交流反馈贡献等内容,均来自该地址:https://gitee.com/renrenio/renren-security

之所以列举出来,是想比较详细的阐述一点:在学习一项开源技术时,最好还是对于的背景还是要多少了解和熟悉,因为对于你在接下来的学习中或者是解决某些问题是有一定的帮助的。

起码一点,你至少清楚一点,这些技术栈你多少精通、用过、熟悉、了解过、听过等等。

项目说明

  • 采用SpringBoot、MyBatis、Shiro框架,开发的一套权限系统,极低门槛,拿来即用。设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。
  • 提供了代码生成器,只需编写30%左右代码,其余的代码交给系统自动生成,可快速完成开发任务
  • 支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库

具有如下特点

  • 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
  • 完善的部门管理及数据权限,通过注解实现数据权限的控制
  • 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
  • 支持分布式部署,session存储在redis中
  • 友好的代码结构及注释,便于阅读及二次开发
  • 引入quartz定时任务,可动态完成任务的添加、修改、删除、暂停、恢复及日志查看等功能
  • 页面交互使用Vue2.x,极大的提高了开发效率
  • 引入swagger文档支持,方便编写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.7、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里

项目演示


如何交流、反馈、参与贡献?

小结:

今天仅仅只是一个背景介绍,接下来会有对应的简单实战,你可以理解为简单的又浅入深(当然了,不是那种深入到源码分析的那种),是由浅度使用到深度使用。希望能对大家有一定的帮助。

人人开源之renren-security的更多相关文章

  1. 人人开源框架使用 renren fast

    参考地址人人开源官网: https://www.renren.io/guide/ 1.介绍 1.1.项目描述 renren-fast 是一个轻量级的 Spring Boot 快速开发平台,能快速开发项 ...

  2. 关于人人开源renren-fast-vue 中npm install各种报错的解决方案

    首先吐槽一下,因为这个问题我整了好几天,把报错信息复制百度,试遍了各种方法,node.js我是卸载了安装,安装了卸载,甚至renren-fast-vue我也删了再下,然后再删,无限循环.然而没有什么软 ...

  3. 人人开源分模块,非原生html报错,很难查找问题所在,有vue语法

    <!DOCTYPE html> <html> <head> <title>学生表</title> #parse("sys/head ...

  4. 人人开源之代码生成器(renren-generator)

    本篇文章,主要包含三个部分,介绍.代码生成演示.代码分析(不会很深入)等 三个部分足以让你学会使用,实际生产可能遇到的问题不会在这遇到. 代码生成器的作用在于提高开发效率.但是这个代码生成器仍有其局限 ...

  5. 人人开源打包jar

    先在renren-security执行mvn clean install 再到renren-admin目录下,执行mvn clean package,就可以打成renren-admin.jar 如果想 ...

  6. springboot完整项目,基于人人开源框架

    这是前端和数据库 下载链接只有31天有效,需要的,请联系QQ2319899766 下载链接密码: 9ksz 这个是后端代码 链接只有31天有效时间,链接失效请联系QQ2319899766提供下载链接 ...

  7. 可实现一键分享到多个平台(微信,微博,qq空间,人人等)

    友推是一款是面向移动应用的SDK分享组件,提供给开发者集成使用.通过友推,开发者可以轻松集成社会化分享功能,同时创建及管理推荐好友使用您应用的推荐奖励活动,用户推荐好友安装使用您的应用即可获得推荐奖励 ...

  8. renren-fast后端源码参考-配置和对应工具

    1. renren-fast后端源码参考-配置和对应工具 1.1. 前言 renren-fast是个开源的前后端分离快速开放平台,没有自己框架的同学可以直接使用它的,而我打算浏览一遍它的代码,提取一些 ...

  9. Spring、MyBatis、Shiro、Quartz、Activiti框架

    https://www.renren.io/ 人人开源:基于Spring.MyBatis.Shiro框架,开发的一套后台脚手架框架(权限系统),极低门槛,拿来即用.支持分布式部署.Quartz分布式集 ...

随机推荐

  1. Ubuntu14.04默认cmake升级为3.x

    由于Ubuntu14.04的cmake版本为2.8.x,而如果需要cmake3.x版本时,无法生成makefile,有两种方法可以安装cmake3.4.1: sudo apt-get install ...

  2. Spring学习(一)---依赖注入和控制反转

    Spring Spring是一个从实际开发中抽出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率. Spring为企业应用的开发提供 ...

  3. csharp: SQL Server 2005 Database Backup and Restore using C#

    1.第一种方式: using SQLDMO;//Microsoft SQLDMO Object Library 8.0 /// <summary> /// 数据库的备份 /// 涂聚文注: ...

  4. 洛谷 P3391 文艺平衡树

    题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 --b ...

  5. 03:成绩排序 个人博客:doubleq.win

    个人博客:doubleq.win 03:成绩排序 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给出班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出 ...

  6. Bootstrap网格

    首先了解一下,什么是网格? 在平面设计中,网格是一种由一系列用于组织内容的相交的直线(垂直的.水平的)组成的结构(通常是二维的).它广泛应用于打印设计中的设计布局和内容结构.在网页设计中,它是一种用于 ...

  7. linq返回的IEnumerable<T>泛型不能被列举计算大于1次

    在分页获取Take后面加ToList()方法就能得到正确结果,为什么?

  8. Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程

    Ubuntu 搭建Web服务器(MySQL+PHP+Apache)详细教程 看了好多人的博客,有的不全 or 有问题,整理了一下,适合小白 新手先整理几个小问题 1.为啥使用 Linux 搭建服务器? ...

  9. MessageFormat使用记录

    1.日志里面需要记录入参,之前一般使用StringUtils.formt()方法,但是如果入参含有空值,就会报错.这个时候可以使用MessageFormat方法.用法 format(String pa ...

  10. 第三课 java编程入门

    java特点: 1.面对象性 2.可移植性/跨平台性 java组成: jdk(java工具开发工具包) /       \              \ jre       指令集合   api和常用 ...