人人框架renren-security |小记(第一篇)
一丶首先介绍一下人人框架:
1、简介
renren-security | 轻量级权限管理系统
采用Spring、MyBatis、Shiro框架,开发的一套权限系统,极低门槛,拿来即用
支持分布式部署、Quartz分布式集群调度、部门管理、数据权限、云存储等功能
renren-security (人人权限系统)是一套轻量级的权限系统,主要包括用户管理、角色管理、部门管理、菜单管 理、定时任务、参数管理、字典管理、文件上传、系统日志、文章管理、APP模块等功能。其 中,还拥有多数据源、数据权限、Redis缓存动态开启与关闭、统一异常处理等技术特点。
renren-security采用SpringBoot、MyBatis、Shiro框架,开发的一套权限系统,极低门槛,拿来即用。设计之初,就非常注重安全性,为企业系统保驾护航,让一切都变得如此简单。
灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
完善的部门管理及数据权限,通过注解实现数据权限的控制
完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
支持MySQL、Oracle、SQL Server、PostgreSQL等主流数据库
等等 不想再多ββ了直接看项目演示。
2、结构简介
项目演示地址:
http://demo.open.renren.io/renren-security/login.html
账号: admin
密码: admin
老板说给几天的时间熟悉一下这个框架,然后写个模块出来,想想就想笑一会。因为配套的文档上面有个教程可以快速生成代码的代码生成器。
先在数据库建一个表,运行一下代码生成器,直接把生成的模块代码覆盖到原文件夹就可以了,模块就写好了。然后在周末老板安排了一下周末培训,关于这个人人框架的,就是让一个熟练的老手,手摸手教学(好恶心啊),现场敲一个模块出来。记得那天很热,老板是JD(不是京东啊!)实习的指导老师,熟练的老手叫李哥,中午一起吃了饭,还记得吃了一份凉皮和一个肉夹馍,点了4个菜,老板跟李哥说今天必须写一个Demo出来,不然就别让他们回去,然后经过一番波折,任务还是完成了的,回去的时候想起室友当时生成代码时说的:老板肯定没看文档,知道我们是生成的代码,一定会杀了我们的,哈哈哈哈哈哈。
好的一个小插曲emmmm.
项目采用springboot+Mybatis-Plus+Vue+maven前后端不分离的结构模式
项目结构如下:
3、主要的的东西:
作为一个新手小白的我有些地方还是些许生疏,写下来权当复习一遍了,哈哈。
介绍一下层级:
modules-sys
Controller:控制层
Dao:数据访问层
Service:业务逻辑层
Entity:实体类
resources-mapper-sys
配置文件:xml
resources-mapper-statics
静态文件:css js fonts libs
resources-mapper-templates
index:Html
application.yml配置文件
数据库 端口 等等
4、下面讲一下环境哈,其实也没什么好说的,流程还是要走一下:
JDK1.8
MySQL5.7
Maven3.6
IDEA2018.3.5
IDEA插件下载两个,第一个下不下都可以(阿里检测代码的,个人推荐一下)。
都说Springboot入门容易精通难,使用起来十分方便,但是整合的东西太多,比如Tomcat就不用本地了下载安装了,都整合好了的,直接用就行了,所以要精通还要下一番苦力啊!
二丶说一下主要的东西 我们这个项目主要实现一下功能
1、学生管理的增删改查(小白,小白现在还只会增删改查)
2、性别上做一个下拉选项
3、班级上做一个下拉选项
好的!至此所有的功能实现完毕!
三丶接下来看代码吧!尽量简短一下空间(直接截图吧!)
1、我们应该先设计数据库,关于数据库呢这里有一个Navicat Premium破解版!
链接:https://pan.baidu.com/s/1QPzsrhpKGAcjC-e0ch_brg
提取码:0g8o
当然用workbench也行,其实我自己也用workbench。因为不知道为什么我用Navicat Premium老出外键无法约束的错(难受,因为在这憋了两天)。
首先我们应先设计一个表sys_student(名字可以自取但是项目中要一致)
2、数据库设计完成之后就可以敲代码了。
2.1首先从实体类开始,创建SysStudentEntity的实体类
利用Lombok插件@Data注解就可以不用写GetSet方法,使用起来很方便又节省了时间。Serializable用来规范序列化。@TableName注解标注数据库表的名字。
2.2下面来写Dao层
这里创建一个findAll()方法返回类型为实体类的List。
在使用Mybatis-Plus中我们可能用到一个比较多的类是BaseMapper接口,其最终也是利用的Mybatis接口编程的实现机制,其默认提供了一系列的增删改查的基础方法,并且开发人员对于这些基础操作不需要写SQL进行处理操作(Mybatis提供的机制就是需要开发人员在mapper.xml中提供sql语句),那样我们可以猜测肯定是Mybatis-Plus完成了BaseMapper接口提供的方法的SQL语句的生成操作。
2.3xml文件(可使用mybatis-plugin插件在Dao层中快捷生成xml文件部分)
property为实体类中数据表对应的名字,column对应的为数据库表的名字。这里算是一个审核。因为使用插件增删改查语句已自动导入,不用自己写,节约了大量时间。
2.4下面来写Service层
编写Sevice层queryPage();findAll();接口。PageUtils是实现分页查询接口的工具。
@Autowired注解,它可以对成员变量、方法及构造函数进行标注,完成自动装配工作,并消除GetSet方法,其实在启动springIOC时容器自动装载了一个Autowired的后置处理器,当容器扫描到@Autowired,就会自动查找需要的bean,并装配该对象的属性。这里实现Service层接口queryPage();findAll();
2.5控制层
调用service层queryPage()方法,实现分页查询。
这里调用Service层的findAll()方法,返回实体类列表。
下面是调用增删改查方法返回“操作成功^_^”:
四、前端代码(太多了,想要的话留言或者自己去网站上下载项目仿写一下还是可以的)
1、Js
2、Html
3、到此,基本功能已经实现
五、下面来做一下性别和班级的下拉框
1、首先重新设计数据库如图:
新建两个表:sys_class和sys_sex.
新建的两个表给上数据然后在sys_student表中增加两个外键(一般都会自动建立索引,如果没有就自己建)如图:
2、以下在项目中增加sys_class、sys_sex的实体类、dao层、service层、xml文件:
Entity:
dao:
service:
xml:
这里读取sys_sex的所有数据按sexid排序
这里读取sys_classid的所有数据按classid排序
3、前端文件
3.1Html
这里添加两个select选择器,样式、返回值
3.2Js
这里增加两个变量。
这里声明queryAllClass();queryAllSex()方法名。
这里写方法实现。
4、后台运行一下
4.1打开端口
4.2添加一个名字为微信的同学:
4.3修改他的性别:
4.4查看数据库:
好的功能实现,到此结束,谢谢大家,老铁点个关注,双击666。
人人框架renren-security |小记(第一篇)的更多相关文章
- b2c项目基础架构分析(二)前端框架 以及补漏的第一篇名词解释
继续上篇,上篇里忘记了也很重要的前端部分,今天的网站基本上是以一个启示页,然后少量的整页切换,大量的浏览器后台调用web服务局部.动态更新页面显示状态这种方式在运作的,从若干年前简单的ajax流行起来 ...
- JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法
Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...
- 【SSH三大框架】Hibernate基础第一篇:编写第一个Hibernate程序
接下来这几章节学习的是Hibernate,Hibernate的主要作用就是用来和数据库进行连接,简化了JDBC的操作. 首先,我们创建项目,然后把Hibernate的jar包和sqlserver的驱动 ...
- python应用:爬虫框架Scrapy系统学习第一篇——xpath详解
HTML的三大概念:标签.元素以及属性 标签:尖括号中的文本 例:<head>……</head> 标签通常成对出现 元素:标签中的所有内容 元素中可包 ...
- Android开源框架Afinal第一篇——揭开圣女的面纱
Android开源框架Afinal第一篇——揭开圣女的面纱 分类: Android开源框架哪点事2013-09-02 14:25 260人阅读 评论(0) 收藏 举报 Afinal 这是Afinal在 ...
- 第一篇web框架
第一篇web框架 http协议 web应用和web框架 主 文 http协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维 ...
- Spring框架第一篇之Spring的第一个程序
一.下载Spring的jar包 通过http://repo.spring.io/release/org/springframework/spring/地址下载最新的Spring的zip包,当然,如果你 ...
- 基于NetMQ的TLS框架NetMQ.Security的实现分析
基于NetMQ的TLS框架NetMQ.Security的实现分析 前言 介绍 交互过程 支持的协议 TLS协议 支持的算法 实现 握手 第一次握手 Client Hello 第二次握手 Server ...
- vue+uni-app商城实战 | 第一篇:【有来小店】微信小程序快速开发接入Spring Cloud OAuth2认证中心完成授权登录
一. 前言 本篇通过实战来讲述如何使用uni-app快速进行商城微信小程序的开发以及小程序如何接入后台Spring Cloud微服务. 有来商城 youlai-mall 项目是一套全栈商城系统,技术栈 ...
随机推荐
- CODING DevOps 微服务项目实战系列最后一课,周四开讲!
随着软件工程越来越复杂化,如何在 Kubernetes 集群进行灰度发布成为了生产部署的"必修课",而如何实现安全可控.自动化的灰度发布也成为了持续部署重点关注的问题.CODING ...
- JavaScript学习系列博客_27_JavaScript 遍历数组
遍历数组 - 遍历数组就是将数组中元素都获取到 - 一般情况我们都是使用for循环来遍历数组: - 使用forEach()方法来遍历数组(不兼容IE8) forEach()方法需要一个回调函数(由我们 ...
- windows 下apache开启FastCGI
1.首先去(http://www.apachelounge.com/download/)下载一个合适的mod_fcgid 文件. 2.将解压后的文件改为mod_fcgid.dll 并复制到a ...
- 操作系统-PV操作的原理和几种常见问题
信号量是一种变量类型,用一个记录型数据结构表示,有两个分量:信号量的值和信号量队列指针 除了赋初值外,信号量仅能通过同步原语PV对其进行操作 s.value为正时,此值为封锁进程前对s信号量可施行的P ...
- CCAI观后
暑期和大老板的学生一起学了一暑假的计算机视觉和机器学习,以前只是在京畿范围的学校听到的报告和这阵的学习数量级都不同.当时看到了很多人的报告,忽然发现了做报告应该做的准备实际还有很多. 首先是要有充分的 ...
- Python开发的入门教程(六)-函数
介绍 本文主要介绍Python中函数的基本知识和使用 Python之什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同 ...
- 解决Oracle12cr2自创建用户无法登录的问题
说明: 下面创建是创建CDB本地用户,不是PDB应用程序用户,如果是PDB应用程序创建语法会不一样.下面介绍创建CDB本地用户. 创建表空空间 CREATE TABLESPACE YH datafil ...
- java安全编码指南之:Mutability可变性
目录 简介 可变对象和不可变对象 创建mutable对象的拷贝 为mutable类创建copy方法 不要相信equals 不要直接暴露可修改的属性 public static fields应该被置位f ...
- 教你如何在linux操作系统下玩【俄罗斯方块】高清+语音教程
主讲人小冰QQ:986945193 新浪微博:http://weibo.com/mcxiaobing 百度贴吧:忆驹家族小冰 腾讯微博:http://t.qq.com/q986945193 高清视频 ...
- facebookPixel代码安装详解
最近接到一个需求,优化独立站的facebookPixel代码,完成后对这个项目进行复盘.首先要介绍facebookPixel的理论知识. Facebook像素是一段JavaScript代码,其中加载了 ...