云E办—基于SpringBoot+Vue前后端分离
文章平均质量分 81
云E办—基于SpringBoot+Vue前后端分离
BigTree的学习之路
这个作者很懒,什么都没留下…
展开
-
043-云E办_后端项目总结
043-云E办_后端项目总结本项目云E办,用到的所有技术:本项目云E办,用到的所有技术:SpringBoot、SpringMVC、Mybatis-plus:搭建框架lombok插件、依赖:简化在pojo实体类中的set、get方法AutoGenerator:用的是mybatis-plus逆向工程。用起来比mybaits更加简单、便捷,提高开发的效率。例如单表的增删改查,通过service就可以调用对应的方法(没有实现类、mapper接口,mapper.xml).Swagger2:接口文档Spr原创 2022-03-13 19:04:59 · 5091 阅读 · 2 评论 -
041-云E办_后端用FASTDFS实现--更新头像
041-云E办_更新头像一、前提准备:1.确保服务已经开启:2.添加依赖3.在resources目录下添加配置文件二、编写FastDFS工具类一、前提准备:1.确保服务已经开启:2.添加依赖pom.xml<!--FastDFS依赖--><dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</artifactId>原创 2022-03-13 17:47:36 · 3861 阅读 · 0 评论 -
042-云E办_(小问题:)更新用户后,应根据用户权限,显示菜单
042-云E办_更新用户后,无权限的菜单,不应该显示问题概述:第一次登录时,所有权限,会显示所有菜单当第二次登陆,部分权限,应显示部分菜单。而还是会显示所有菜单!!!!分析问题:1.更改用户权限后,数据库是否也更改了相应于的菜单列表?AdminServiceImpl2.从上述代码可以看出,数据库进行了更新,而redis没有进行更新(删除redis存放的菜单).AdminServiceImpl用户登录时,会根据用户id,在redis中添加全新菜单列表: AdminServiceImpl问题概述:本项目云原创 2022-03-13 12:08:55 · 1627 阅读 · 0 评论 -
040-云E办_学习和安装FastDFS以及安装Nginx
040-云E办_学习FastDFS一、简介:1、介绍:2、架构图:3、上传流程:4、下载流程:5、专业术语:6、同步机制7、同类产品简单对比二、安装1、安装FastDFS安装FastDFS依赖解压FastDFS核心库,到指定的目录编译安装创建软连接2、解压FastDFS并安装FastDFS安装后资源简介三、tracker基础配置创建跟踪服务配置文件修改配置文件创建自定义目录启动服务停止服务/重启服务/三、storage基础配置创建存储服务配置文件修改配置文件创建自定义迷路启动服务三、客户端基础配置创建客户端原创 2022-03-10 22:24:46 · 4227 阅读 · 2 评论 -
040-云E办_ 个人中心
040-云E办_ 个人中心一、个人中心二、个人中心操作controller 修改信息和密码service 更改密码:三、Bug解决CustomAuthorityDeserializerpojo/admin一、个人中心在普通项目中需要获取当前登录用户的信息,一般做法是在登录成功后,将当前用户信息存入session中。在需要使用当前用户的时候从session里面读取。更新用户信息也是直接通过数据库进行相应的更新。在Spring Security中要如何获取用户信息和更新用户信息呢?在Spring S原创 2022-03-09 22:22:57 · 995 阅读 · 0 评论 -
039-云E办_WebSocket
039-云E办_WebSocket一、WebSocket介绍:为什么需要WebSocket?二、聊天功能的实现:添加依赖:WebSocket配置类定义消息类WsController查询聊天人员放行WebSocket测试:一、WebSocket介绍:WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次原创 2022-03-09 21:22:05 · 915 阅读 · 0 评论 -
038-云E办_工资账套功能
038-云E办_工资账套功能一、工资套账管理1、修改实体类2、controller层,由于单表,而mybatis-plus写完controller层即可。二、员工账套管理修改员工类1.员工账套功能 EmployeeMapper2.EmployeeService3.controller一、工资套账管理1、修改实体类添加返回日期格式pojo/ Salary.java2、controller层,由于单表,而mybatis-plus写完controller层即可。package com.xxxx.se原创 2022-03-09 11:53:08 · 852 阅读 · 2 评论 -
037-云E办_邮件发送-员工入职时发送邮件
这里写自定义目录标题一、前提准备:开通smtp注意:配置信息二、在yeb-project中搭建邮件项目:1、创建module2、yml文件3、邮件模板:1.resources/templates/mail.html三、yeb-server邮件发送的功能:1、yeb-server添加依赖 / 修改配置文件2、添加员工成功后,发送邮件:四、yeb-mail邮件接受功能1、五、测试:1、开启yeb-server2、开启yeb-mail3、开启npm run serve前端邮件服务:例如:新员工入职时,会发送原创 2022-03-07 09:16:42 · 3512 阅读 · 1 评论 -
036-云E办_Spring集成RabbitMQ-spring AMQP
036-云E办_Spring集成RabbitMQ-spring AMQP一、搭建项目:1、创建父部项目Project1.父部环境2.父部依赖:做依赖管理2、创建子项目module:send1.搭建环境:2.依赖:3. application4.send配置类:5. send test:3、创建子项目module:revc。同sendRecvInit二、测试:此demo是简单模式为什么使用spring-AMQP1.基于spring之上,社区活跃2.对MAQP进行了高度封装3.极大简化了RabbitM原创 2022-03-06 16:18:08 · 1388 阅读 · 0 评论 -
035-云E办_RabbitMQ_confirm确认模式
035-云E办_RabbitMQ_RabbitMQ消息的事务机制前言: RabbitMQ消息的事务机制(了解)总结:事务会降低性能一、confirm确认模式1、实现生产者confirm 机制有三种方式:2、异步confirm3、代码:前言: RabbitMQ消息的事务机制(了解)在使用RabbitMQ的时候,我们可以通过消息持久化操作来解决因为服务器的异常奔溃导致的消息丢失,除此之外我们还会遇到一个问题,当消息的发布者在将消息发送出去之后,消息到底有没有正确到达broker代理服务器呢?如果不进行特殊配原创 2022-03-05 22:19:48 · 757 阅读 · 0 评论 -
034-云E办_RabbitMQ_Topics-主题模式队列(重要-用的最多)
034-云E办_RabbitMQ_Topics-主题模式队列一、介绍主体模式:二、代码:sendrevc01 /02三、测试:主题模式:可以结合前面4中方式:简单、工作队列、交换机、路由从结果可以看出生产者发送了多条设置了路由规则的消息,消费者可以根据具体的路由规则消费对应队列中的消息,而不是所有消费者都可以消费所有消息了。问题:生产者产生的消息如果场景需求过多需要设置很多路由规则,可不可以减少?解决:采用topic主题模式路由key太多,难以管理–>加入通配符(类似正则表达式)一原创 2022-03-05 18:17:39 · 998 阅读 · 0 评论 -
033-云E办_RabbitMQ_Routing-路由模式队列
033-云E办_RabbitMQ_Routing-路由模式队列一、direct路由模式简介:二、根据路由key,指定发放订阅队列:send:消费者三、测试:开启消费者01 和02发布订阅——广播模式:从结果可以看出生产者发送了一条消息,用于邮件发送和短信发送的消费者均可以收到消息进行后续处理。问题:生产者产生的消息所有消费者都可以消费,可不可以指定某些消费者消费呢?解决:采用direct路由模式。一、direct路由模式简介:通过案例03,可以看到,生产者将消息投送给交换机后,消息经交换机分发原创 2022-03-05 17:33:01 · 556 阅读 · 0 评论 -
032-云E办_RabbitMQ_消息的发布与订阅模式队列-交换机广播
032-云E办_RabbitMQ_Publish/Subscribe-消息的发布与订阅模式队列一、Publish/Subscribe-消息的发布与订阅模式队列二、生产者发送消息,消息绑定交换机,交换机绑定不同的队列,消费者从队列那消息1.生产者2.消费者:三、测试:开启消费者01 和02 :多了一个广播交换机:交换机绑定了两个队列:发送队列发送一条消息,两个队列都有收到:总结工作模式:从结果可以看出1号消费者消费消息数量明显高于2号,即消息通过fair 机制被公平分发到每个消费者。问题:生产者产生的原创 2022-03-05 16:09:14 · 694 阅读 · 0 评论 -
031-云E办_RabbitMQ_工作队列-轮巡分发、公平分发
031-云E办_RabbitMQ_工作队列一、工作模式队列-消息轮巡分发(Round-robin)1、介绍2、生产者send3、消费者:Recv01和024、测试:先开启消费者01和02:查看http服务台:开启两个接受者:两个信号和连接、多了一个信道开启生产者:查看消费者:01和025、总结:二、工作模式队列-消息公平分发(fair dispatch)1、生产者:2、消费者01 和 023、测试:能者多劳消费者慢的02:消费者快的01:工作模式队列-消息轮巡:解决生产者大于消费者的问题工作模式队列-原创 2022-03-05 11:07:18 · 550 阅读 · 0 评论 -
030-云E办_RabbitMQ_简单模式队列
030-云E办_RabbitMQ_简单模式队列一、介绍简单模式队列1、RabbitMQ发送消息使用三个角色:1. producing 消息的生产者。2. queue队列:3. consuming 消费者:2、hello3、如何实现hello4、生产者和消费者,解读代码:1.生产者只是用发送消息2.消费者:专门监听队列,同时接受、处理消息二、创建项目模块1、创建项目:2、消费者和生产者代码:1.生产者:2.消费者:3、test测试:1.运行send2.运行消费者:3.全局预览:一、介绍简单模式队列官网:h原创 2022-03-04 22:41:24 · 842 阅读 · 0 评论 -
029-云E办_RabbitMQ介绍和安装
029-云E办_RabbitMQ介绍和安装一、MQ介绍1、简介:2、实现:3、特点:4、优缺点:1.解耦2.异步处理3.流量削锋4.缺点5、使用场景二、为什么使用RabbitMQ1.介绍不同的MQ2、RabbitMQ为什么要使用RabbitMQ 总结如下:三、安装RabbitMQ1、由于Erlang编写的,先安装Erlang2、安装RabbitMQ3、管理界面基本操作1.管理界面添加用户与权限分配2.分配权限3.路由4.集群一、MQ介绍1、简介:在计算机科学中,MQ全称是消息队列(英语:Message原创 2022-03-04 20:31:39 · 1507 阅读 · 3 评论 -
028-云E办_导入导出员工信息--EasyPoi注解使用
028-云E办_导入导出员工信息--EasyPoi注解使用一、EasyPoi简介:二、导出、导入员工数据做准备1、添加依赖2、修改员工类1.pojo/Employee三、导出:一、EasyPoi简介:国内有很多开源项目对poi进行了封装,大大减少代码量,使其能够更简单的被我们使用并提高开发效率,例如EasyPoi,Excel4J,HuTools等优秀的开源项目。我们这次以EasyPoi为例easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员 就可以方便的写出Excel导原创 2022-03-03 22:31:22 · 931 阅读 · 1 评论 -
026-云E办_操作员及操作员管理
026-云E办_操作员一、简介:二、搜索controllerservice抽取一个类:获取当前用户信息:mapper测试三、更新和删除:controller三、操作员角色功能1.获取所有的角色2.更新操作员的角色controllerservicemapper测试一、简介:可以通过搜索操作员的名字,来单独显示操作员的信息。展示所有操作员的时候,不会把自己当前登录的操作员显示出来。操作员涉及了权限:操作员拥有哪些角色,在根据角色再去拥有哪些菜单的权限。二、搜索controller为什么要写原创 2022-02-28 18:33:46 · 1101 阅读 · 0 评论 -
025-云E办_树形展示部门分离管理——数据库存储过程
025-云E办_存储过程一、部门管理---数据库的介绍:模拟插入:二、存储过程的介绍三、存储过程的创建和调用创建存储过程四、获取所有的部门1.pojo/Department2.controller3.service4.mapper五、添加部门一、部门管理—数据库的介绍:parentId:父id 那么一层一层的部门。学校举例:学校、院级、系级、专业、班级、小组、个人.depPath:路径。为了给前端一个相应的展示。isparent:是否是父部?,返回来也就是说否有下级。例如学校为最高的级别,那么肯定原创 2022-02-27 21:37:17 · 872 阅读 · 0 评论 -
024-云E办_权限组->角色功能、菜单功能实现
024-云E办_权限组一、权限组的介绍:二、角色功能实现三、菜单功能实现1、查询所有的菜单:1.controller2.service3.mapper一、权限组的介绍:该模块提供角色的相关操作。在之前权限管理可以看到角色可以通过 用户_角色表与用户表关联进而分配用户不同的角色,也可以通过菜单_角色与菜单表关联进而分配不同角色可以拥有不同菜单的权限。在权限组模块,我们只关注通过菜单_角色与菜单表关联进而分配不同角色可以拥有不同菜单的权限。因此本模块有:角色功能和菜单功能:角色功能的相关操作:查询角原创 2022-02-27 12:20:27 · 1831 阅读 · 0 评论 -
023-云E办_职称管理功能
023-云E办_职称管理功能一、查看数据库:职称管理:JobLevel二、创建日期只需要显示年月日即可。pojo三、controller代码:只需要写controller层即可,mybatis-plus已经生成了service层mapper层一、查看数据库:职称管理:JobLevel二、创建日期只需要显示年月日即可。pojo创建日期展示,格式化:@ApiModelProperty(value = "创建时间")@JsonFormat(pattern = "yyyy--MM-dd",timezo原创 2022-02-26 20:18:31 · 1010 阅读 · 1 评论 -
022-云E办_全局异常处理 @ExceptionHandler注解【SQLIntegrityConstraintViolationException】
022-云E办_全局异常处理前言:一、介绍:1、SpringBoot全局异常处理方式主要两种:2、区别:二、代码实现:三、再次测试:全局异常捕获:前言:当删除操作时,正常删除时,就会正常删除。当删除某个字段,与其他字段关联的数据时,就会报错。无法删除或更新父行:外键约束失败(yeb.t_employee,约束t_employeeU ibfk_3外键(posId)在删除时引用t_position(id`)在更新时限制)报错信息对于程序员而言,可以帮助定位问题,如果将给用户看的话,用户是看不懂这个报原创 2022-02-26 15:30:22 · 1600 阅读 · 0 评论 -
021-云E办_职位管理功能实现
021-云E办_职位管理功能实现一、数据库表的讲解:1、职位表:二、1、将职位表中的创建时间格式化:该模块提供职位的常用操作,例如查询职位,添加职位,更新职位,删除职位等方法一、数据库表的讲解:1、职位表:一般在公司职位变化很小,一般会放在系统管理里面。二、1、将职位表中的创建时间格式化:...原创 2022-02-26 11:42:57 · 1036 阅读 · 0 评论 -
020-云E办_权限管理RBAC.用户、角色、菜单对应的关系
020-云E办_权限管理题前言:一、权限管理RBAC基本概念二、RBAC表结构设计1、实体对应关系2、表结构设计三、根据请求的url判断角色1.思路2.根据访问的URL判断角色具体实现:1.POJO类、Menu2.server: IMenusServer3.mapper: MenuMapper4.过滤器四、判断用户的角色1、修改管理员类前言:前面,只是在表查询当中,关联了一下权限表。并没有做其他的处理,这是正常登录。问题:如果用户直接在地址上输入本身权限没有的URL,我们也应该对其控制。这样就设计到权原创 2022-01-29 00:01:11 · 4061 阅读 · 6 评论 -
0019-云E办_Redis集成菜单功能
0019-云E办_Redis集成菜单功能一、依赖和配置1、添加依赖2、修改配置3.配置Redis菜单大部分情况下不会出现变化,我们可以将其放入 Redis 加快加载速度,一、依赖和配置1、添加依赖<!-- spring data redis 依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter原创 2022-01-26 23:20:45 · 2214 阅读 · 0 评论 -
018-学习Redis-理解:缓存击穿、缓存穿透、缓存雪崩
018-学习Redis-理解:缓存击穿、缓存穿透、缓存雪崩一、缓存击穿1、Key的过期淘汰机制2、定期删除3、惰性删除4、内存淘汰机制5、缓存击穿1.定义:2.解决方案:二、缓存穿透1、缓存穿透 定义:2、解决方案:三、缓存雪崩1、定义:2、解决方案:一、缓存击穿例子:双十一抢某款手机,结果这款手机的key没有在redis,都去数据库进行获取该key,导致数据库的压力瞬间增大。解决方案:如果单纯设为永不过期,存在的问题是:当该key的数据库中的数据更新了,而缓存设为了永不过期,导致没有及时更新。原创 2022-01-25 17:42:07 · 439 阅读 · 0 评论 -
017-学习Redis-SpringDataRedis项目操作类型、设置失效时间、整合哨兵
这里写自定义目录标题一、项目搭建1、创建项目2、添加配置3.Lettuce和Jedis的区别4、测试连接:5、为什么StringRedisTemplate和RedisTemplate一、项目搭建原创 2022-01-25 16:58:11 · 1920 阅读 · 2 评论 -
016-学习Redis-主从服用、哨兵、主备切换、集群概念
redis主从服用、哨兵、主备切换、集群概念原创 2022-01-24 21:22:29 · 957 阅读 · 0 评论 -
015-学习Redis-持久化方案-bgsave/rdb/aof
这里写自定义目录标题一、回顾Redis1、redis的特点2、redis提供了磁盘持久化二、方案一:bgsave1、如何操作2、优缺点三、方案二:配置文件rdb1、配置文件解说:2、优缺点:四、方案三:aof1、 修改配置文件:修改配置后,重启服务:2、优缺点一、回顾Redis1、redis的特点redis是一个内存中的数据结构存储系统。优点:内存操作速度比硬盘很快。缺点:但是内存没有办法保存数据。2、redis提供了磁盘持久化通过磁盘持久化功能,就可以把内存中的数据,持久化到磁盘当中去。数据就可原创 2022-01-24 11:03:30 · 3525 阅读 · 0 评论 -
014-学习Redis-Jedis连接Redis
014-学习Redis-Jedis连接Redis AND Jedis连接池连接Redis一、Jedis连接Redis1、创建项目2、依赖:3、配置文件二、Jedis连接池连接Redis一、Jedis连接Redis1、创建项目2、依赖:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/X原创 2022-01-22 22:33:19 · 1007 阅读 · 0 评论 -
Win连接Linux上面的redis,连接失败redis.cl.jedis.exceptions.JedisConnectionException: Failed connecting to host
redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host 192.168.0.121:6379前提:1、确认配置文件:原创 2022-01-22 20:11:32 · 1745 阅读 · 0 评论 -
013-学习Redis-操作数据类型
这里写自定义目录标题启动项目,远程客户端一、操作数据类型:1、String(默认存的是字符串):set2、hash:hset3、list:lpush /lrange/llen/lrem4、set:sadd/smembers/scard/srem5、sortedSet: zadd/zrange/zcard/zrem二、Redis-cli操作通用命令1、通用删除命令,五种类型通用。 del *2、reids key 失效时间3、层级关系,目录形式存储数据远程操作客户端Redis。-h是指定ip地址-p是指原创 2022-01-22 16:32:08 · 616 阅读 · 1 评论 -
012-Redis部分配置解析
1、后台启动。2、用redis-desktop-manager连接reids。3、修改redis.config:所有ip地址都能连接redis,输入密码、关闭保护模式。4、重启redis原创 2022-01-21 22:36:26 · 776 阅读 · 0 评论 -
011-关系型数据库与非关系型数据库的区别
关系型数据库和非关系型数据库的优缺点、以及区别原创 2022-01-20 22:48:37 · 897 阅读 · 0 评论 -
010-学习Redis-介绍与安装
010-学习Redis一、介绍与安装:1、Redis是什么?可以用作:数据库、缓存、消息中间件五种数据类型:strings/hashes/lists/set/sorted sets集群下用到的哨兵2、性能3、Redis历史简介4、支持语言5、支持的数据类型学习第三方技术:最准确的方式通过官网:https://redis.io/国人汉化:redis.cn一、介绍与安装:1、Redis是什么?Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。原创 2022-01-20 21:40:11 · 877 阅读 · 0 评论 -
009-云E办_根据id查询列表
009-云E办_根据id查询列表一、根据用户id查询列表从上往下写:controller/service/Mapper/mapperxml...1、Menu 修改菜单类 pojo/Menu2、MenuController3、MenuService和MenuServiceImpl4、MenuMapperMenuMapper.xml 语句中不能添加注释5、测试:查看menu菜单了的数据库:component组件:前端用vue写的,组件开发。parentId:说明菜单是多个级别菜单。相互关联是通过父ID。原创 2022-01-20 17:29:19 · 2148 阅读 · 3 评论 -
008-云E办_登录验证码
008-云E办_登录验证码一、生成验证码1、添加依赖2、验证码配置类3、提供验证码 生成接口4、放心验证码接口5、测试:二、校验验证码1、登录参数对象添加验证码属性2、登录方法添加验证码判断3、判断4、测试:谷歌图形验证码,传统的4位数字和字母形成的验证码,一、生成验证码图像验证码显示功能使用 google Kaptcha 验证码产品 实现前台验证码显示功能1、添加依赖<!-- google kaptcha依赖 --><dependency> <groupId原创 2022-01-19 23:09:00 · 896 阅读 · 0 评论 -
007-云E办_接口文档-配置Swagger2
006-云E办_接口文档-配置Swagger2一、依赖配置二、后端写完代码后,要把接口整理好给前端,前端根据接口文档再去开发。一、依赖配置二、原创 2022-01-19 19:37:38 · 1835 阅读 · 14 评论 -
006-云E办_登录功能
005-云E办_登录功能一、Jwt Token工具类编写1、依赖、配置2、jwt令牌的工具类一、Jwt Token工具类编写采用SpringSecurity安全框架以及JWT令牌实现登录功能。1、依赖、配置引入依赖:<!--security 依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-start原创 2022-01-18 23:59:36 · 5586 阅读 · 0 评论 -
005-云E办_学习JWT
005-云E办_学习JWT一、常见的认证机制1、HTTP Basic Auth2、Cookie Auth3、OAuth4、Token Auth二、JWT简介1、什么是JWT2、JWT令牌的优点:3、JWT组成1.头部(Header)2.负载(Payload)3.jwt的第三部分是一个签证信息,这个签证信息由三部分组成:4、JJWT简介三、创建JJWT的Demo1、创建项目2、编写测试类:3、运行结果:4、token的验证解析一、常见的认证机制1、HTTP Basic AuthHTTP Basic Au原创 2022-01-15 23:58:38 · 2185 阅读 · 0 评论