自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

泛泛之素

无他、唯手熟尔

  • 博客(63)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring WebFlux + React搭建后台管理系统(8):通过access鉴权

不得不说umi这个access功能还是比较实用的,现在鉴权的逻辑写起来要方便的多。我们可以通过access轻松实现很多功能:通过不同权限展示不同的菜单在组建中展示不同的内容对写入功能进行限制做一个简单的实践,下面是三个用户不同权限,以及不同权限能达到的目的:用户权限功能ffzsadmin可以查看所有内容包括权限,修改人等,以及添加用户,修改用户,删除用户dzit可以看到部分用户信息,可以修改用户部分信息vincenthr只能查看用户部分信息,不可修

2020-08-31 22:02:33 467

原创 Spring WebFlux + React搭建后台管理系统(7): 实现excel文件上传下载

后台管理系统的excel导出功能,以及使用excel进行批量导入都是必不可少的功能,本篇主要介绍内容如下:java后端 excel的读写excel类型判断以及通过反射适配class后端接收upload服务逻辑实现后端download服务逻辑前端upload组建使用前端download配置先上效果图:1. 读取Excel文件1.1 添加依赖通过使用poi进行excel文件的解析:implementation 'org.apache.poi:poi:4.0.1'implementa

2020-08-31 20:45:13 1538 1

原创 Spring WebFlux + React搭建后台管理系统(6): 使用faker获取测试数据

由于测试没有数据,一个一个写的话太麻烦了,这是我们可以使用faker伪造测试数据,之前用写爬虫的时候经常用来生成user-agent,查了一些java也有类似的库:implementation 'com.github.javafaker:javafaker:0.17.2'通过爬虫获取图像地址通过faker编写生成SysUser类的对象通过编写一个faker数据的controller,get传入个数fake相应的用户数据1. 获取头像地址随便找了个头像网站,编写了一个爬虫获取了一些头像地

2020-08-31 20:38:59 367

原创 Leetcode: NO.841 钥匙和房间 深度优先

题目有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进入每个房间返回 true,

2020-08-31 08:40:41 214 1

原创 Leetcode: NO.557. 反转字符串中的单词 III Java一行解题

题目给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例:输入:"Let's take LeetCode contest"输出:"s'teL ekat edoCteeL tsetnoc"提示:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。链接:https://leetcode-cn.com/problems/reverse-words-in-a-string-iii解题记录遇到空格将之前的字符串倒转即可StringB

2020-08-30 07:55:34 234

原创 Spring WebFlux + React搭建后台管理系统(5): antd pro v5 ProTable使用

本篇配合antdpro的 ProTable实现简单的CRUD操作:官方网站更改了ProTable获取数据改写UpdateForm内容,实现新增用户更改用户信息删除用户信息修改删除需要admin权限处理效果图1. 设置自己的tableItem跟据自己的数据编写Table使用的tableItem类:export interface UserDetails { key: number; username: string; avatar: string; createBy:

2020-08-29 22:19:09 900

原创 Leetcode: NO.214 最短回文串 递归

题目给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:输入: "aacecaaa"输出: "aaacecaaa"示例 2:输入: "abcd"输出: "dcbabcd"链接:https://leetcode-cn.com/problems/shortest-palindrome解题记录回文判断通过双指针进行比对right指针分别从后向前循环然后获取子字符串判断是否为回文之后补全后边即可/** *

2020-08-29 10:22:23 331

原创 Spring WebFlux + React搭建后台管理系统(4): antd pro v5 设置

本篇使用l研究一下ayout中的一些设置,以及locale使用,更改标题,添加logo,更改样式样式功能。点我进入官方教程内容分为一下几点:更改标题更改logoroute配置locale修改样式设置footer修改rightContent美化登录页面1. 更改标题,logo通过config文件夹的defaultSetting文件进行layout设置的更改,也可以在config.ts文件中更改,config中的修改会覆盖setting中内容title指的就是logo旁边的名

2020-08-28 21:58:34 1337

原创 Spring WebFlux + React搭建后台管理系统(3): antd pro v5实现登入登出

antdpro是蚂蚁金服开发的后台管理框架模板,继承了许多组建,可以满足快速开发,组建使用的antd,组建种类比较多,功能比较全,设计也挺好看的,但是封装程度有点高,用起来可能不是很灵活,一些功能需要研究一下。1. 创建antd项目官方创建项目说明1.1 命令行键入:yarn create umi1.2 选择Pro v5:这时项目文件全部拉下来了:1.3 下载依赖通过yarn下载,时间会比较长yarn1.4 运行项目通过键入yarn start启动项目通过浏览器

2020-08-28 14:26:56 1869 2

原创 Leetcode: NO.657 机器人能否返回原点

题目在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧要。 “R” 将始终使机器人向右移动一次,“L” 将始终向左移动等。此外,假设每次移动机器人的移动幅度相同。示例 1:输入: "U

2020-08-28 07:42:52 333

原创 Spring WebFlux + React搭建后台管理系统(2): 主要业务逻辑实现

上一篇简单实现了数据库表的生成以及生成POJO,这里主要介绍后台服务中实现的接口以及如何通过使用webflux实现一些复杂的逻辑,以及登录鉴权等内容。业务接口如下为整理的实现的借口汇总,应为是RESTful接口,一个path会对应多个功能:UrlHttpMethod描述**/api/auth/logout **get登出**/api/auth/login **post登入**/api/user **get通过用户名获取数据用户**/api/us

2020-08-27 21:40:01 1137

原创 Leetcode: NO.332 重新安排行程 回溯算法+深度优先

题目给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 ["JFK", "LGA"] 与 ["JFK", "LGB"] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票至少存在一种合理的行程。示例 1:输入:

2020-08-27 11:07:12 405

原创 Spring WebFlux + React搭建后台管理系统(1):创建数据表及生成POJOs

搞了一个月的响应式,开个新坑,本系列简单搭建一个后台管理系统,主要功能如下:jwt 登录+鉴权实现用户管理页面,用户查询数据表,增删改表单实现api管理页面,api权限管理的增添修改mysql存储用户信息redis用于缓存权限路由映射,记录token使用技术栈:后端使用spring webflux + mysql + redis + jwt实现 RESTful api + RSocket?,前端使用reactjs + umijs + antd + material-ui?。spring

2020-08-26 12:30:26 834

原创 Leetcode: NO.17 电话号码的字母组合 回溯算法

题目给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-num

2020-08-26 08:04:01 404

原创 Leetcode: NO.491 递增子序列 回溯

题目给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明:给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。链接:https://leetcode-cn.com/pro

2020-08-25 09:47:20 350

原创 Leetcode: NO.459 重复的子字符串

题目给定一个非空的字符串,判断它是否可以由它的一个子串重复多次构成。给定的字符串只含有小写英文字母,并且长度不超过10000。示例 1:输入: "abab"输出: True解释: 可由子字符串 "ab" 重复两次构成。示例 2:输入: "aba"输出: False示例 3:输入: "abcabcabcabc"输出: True解释: 可由子字符串 "abc" 重复四次构成。 (或者子字符串 "abcabc" 重复两次构成。)链接:https://leetcode

2020-08-24 09:14:31 337

原创 Leetcode: NO.201 数字范围按位与 二进制运算

题目给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1: 输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0链接:https://leetcode-cn.com/problems/bitwise-and-of-numbers-range解题记录先了解一个按位与,二进制计算,运算符为&, 就是两个同位,都为1的时候为1否则为0因此这里可

2020-08-23 11:29:27 351

原创 Leetcode: NO.679 24 点游戏 穷举

题目你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算符对两个数进行运算。特别是我们不能用 - 作为一元运算符。例如,[1, 1, 1, 1] 作为输入时,表

2020-08-22 15:06:18 358

原创 Leetcode: NO.111 二叉树的最小深度 后序遍历

题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.链接:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree解题记录通过后序遍历遍历树每一层区分对待单侧子树的情况

2020-08-21 08:12:37 263

原创 Spring WebFlux (9): 配合redis使用

redis是著名的缓存数据库,同时也是Key-Value数据库,使用redis可以做许多工作,共享session,实现一个小的队列,最主要还用来作为缓存。在webflux中使用redis用于缓存有些蛋疼,需要自己配置,而且返回的都是publisher,本篇也不着重实现这个,本篇只是在Spring WebFlux (7): Springboot Security+jwt登录鉴权的基础上,添加一些redis的使用:登录的时候将token记录在redis数据库中key为token_set的一个set中访

2020-08-20 18:25:45 2337

原创 Leetcode: NO.529 扫雷游戏 深度优先

题目让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:如果一个地雷(‘M’)被挖出,游戏就结束了- 把它改为 ‘X’。如果一个没

2020-08-20 10:38:55 519

原创 搞机: oh-my-zsh + autojump + screen 让你的终端起飞

用了这没久ubuntu了,才知道有oh-my-zsh这种东西,真是相见恨晚啊~1. oh-my-zsh安装使用说到oh-my-zsh先要说一下zsh。zsh是linux的命令指示器类似于bash,我么平时使用的就是bash,支持的配置比较多方式比较多,使用起来跟bash也没啥区别,会使用bash就能直接上手没啥学习成本。oh-my-zsh是一个配置zsh的项目,用于美化zsh界面,并提供一些智能插件,可以很大程度提升使用命令行的效率。1.1 zsh安装我用的是ubuntu系统,演示ubuntu安.

2020-08-19 22:32:28 5665

原创 Spring WebFlux (8): 处理跨域请求cors设置

前后端分离访问api会出现跨域资源共享(CORS)问题,webflux框架处理cors主要四种方法:处理方法设置注释@CrossOrigincontroller上设置@CrossOrigin设置cors的configuration文件设置cors的Webfilter前两个为局部设置,后两个为全局设置1. 方法标注@CrossOrigin在需要开放资源的方法上面注释CrossOrigin即可:@CrossOrigin注释的设置具有如下的默认配置:允许所有来源允许所有请求头允许所有

2020-08-19 15:30:18 3852

原创 React + UmiJS: 实现简单登录鉴权

在之前的文章Spring WebFlux (7): Springboot Security+jwt登录鉴权实现了后端的鉴权登录,只是通过postman进行了测试,本篇以此为基础通过reactjs和umijs架构编写一个前段登录界面,简单测试登录,页面如下功能:登入,访问后端api获取token以及权限信息登入后实现跳转token信息和roles放入localStorage中其他路由设置访问权限,通过wrappers进行权限判断登出,擦除localStorage信息,跳转到login界面技术栈

2020-08-19 14:08:10 9368 6

原创 Leetcode: NO.647 回文子串 中心扩散

题目给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被视作不同的子串。 示例 1:输入:"abc"输出:3解释:三个回文子串: "a", "b", "c"示例 2:输入:"aaa"输出:6解释:6个回文子串: "a", "a", "a", "aa", "aa", "aaa"提示:输入的字符串长度不会超过 1000 。链接:https://leetcode-cn.com/problems/palin

2020-08-19 08:37:42 188

原创 Leetcode: NO.109 有序链表转换二叉搜索树 快慢指针

题目给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5链接:https://leetcode-cn.com/problem

2020-08-18 09:47:31 292

原创 Spring WebFlux (7): Springboot Security+jwt登录鉴权

在Spring WebFlux (3): mysql+Springboot Security实现登录鉴权的基础上实现token登录的逻辑刚上手确实很复杂,挺难啃的,而且实现方法也不唯一,看过很多博客实现的方法基本都不一样,简单说一下我的方法:首先设置一个WebFilter,主要两个功能:登录和注册时是没有token的,这两个功能的路由放行其他请求检查token,是否有token,token是否合法,讲处理的token放入上下文中然后就是实现ServerSecurityContextRe

2020-08-17 21:34:59 8569 21

原创 Leetcode: NO.110 平衡二叉树 后序遍历

题目给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \ 3 3 /

2020-08-17 09:03:12 347

原创 Leetcode: NO.733 图像渲染 有记忆深度优先

题目有一幅以二维整数数组表示的图画,每一个整数表示该图画的像素值大小,数值在 0 到 65535 之间。给你一个坐标 (sr, sc) 表示图像渲染开始的像素值(行 ,列)和一个新的颜色值 newColor,让你重新上色这幅图像。为了完成上色工作,从初始坐标开始,记录初始坐标的上下左右四个方向上像素值与初始坐标相同的相连像素点,接着再记录这四个方向上符合条件的像素点与他们对应四个方向上像素值与初始坐标相同的相连像素点,……,重复该过程。将所有有记录的像素点的颜色值改为新的颜色值。最后返回经过上色渲染

2020-08-16 07:46:57 305

原创 Leetcode: NO.546 移除盒子 动态规划

题目给出一些不同颜色的盒子,盒子的颜色由数字表示,即不同的数字表示不同的颜色。你将经过若干轮操作去去掉盒子,直到所有的盒子都去掉为止。每一轮你可以移除具有相同颜色的连续 k 个盒子(k >= 1),这样一轮之后你将得到 k*k 个积分。当你将所有盒子都去掉之后,求你能获得的最大积分和。示例:输入:boxes = [1,3,2,2,2,3,4,3,1]输出:23解释:[1, 3, 2, 2, 2, 3, 4, 3, 1] ----> [1, 3, 3, 4, 3, 1] (3*

2020-08-15 11:59:33 377

原创 Leetcode: NO.20 有效的括号 (重温) 栈

之前已经做过:Leetcode: NO.20 有效的括号补一个用栈处理的方法:/** * @author: ffzs * @Date: 2020/8/14 上午7:35 */public class Solution { public boolean isValid(String s) { char[] seq = s.toCharArray(); Deque<Character> stack = new LinkedList<>

2020-08-14 07:54:08 374

原创 Spring WebFlux (6): RSocket 服务实现

RSocket官网:https://rsocket.io/RSocket是一种二进制协议,可用于字节流传输,例如TCP,WebSockets和Aeron。提供了四中交互模式:request/response (stream of 1) 请求/响应(单响应)大多数请求就是这种模式,仅1个响应的流,是在单个连接上多路复用的异步消息request/stream (finite stream of many) 可以将其视为“集合”或“列表”响应,但不是将所有数据作为单个响应返回,而是按顺序流回每个元素

2020-08-13 16:36:21 1846

原创 Spring WebFlux (5): WebClient使用

可以使用WebFlux的WebClient类很方便的对网络请求进行代理处理操作,我想Spring Cloud Gateway中主要用的就是WebClient进行操作,这里简单介绍一下WebClient的用法,想要深度学习的话,看一下Spring Cloud Gateway源码准没错一些用法流数据首先创建一个server端,用于产生一些网络服务:Employee为员工类EmployeeFaker为通过javafaker包生成的一些数据EmployeeController生成一些服务,其中getE

2020-08-13 13:20:45 3592 1

原创 Leetcode:NO.43 字符串相乘

题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 = "456"输出: "56088"说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类

2020-08-13 08:56:42 395

原创 Spring WebFlux (4): 使用springdoc openapi测试登录security设置

首先设置在设置全局filter时,将swagger相关的网址授权:登录设置:1. swagger全局登录设置,在controller文件中进行设置:设置之后可以在标红处进行登录:登录之后便可测试api:2. 对某个路由进行设置设置之后,可以在红框处进行登录:...

2020-08-12 18:19:32 1922

原创 Spring WebFlux (3): mysql+Springboot Security实现登录鉴权

Security主要有两个功能:登录鉴权Security通过一个user相关类存储用户信息,实现UserDetails接口功能:看一下Security自带的User类, 主要变量:password:密码username: 账户名authorities: 访问权限accountNonExpired:账户没有过期isAccountNonLocked:账户没被锁定 (是否冻结)isCredentialsNonExpired:密码没有过期isEnabled:账户是否可用(是否被删除)

2020-08-12 12:20:46 3327

原创 Leetcode:NO.133 克隆图 深度优先

题目给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。class Node { public int val; public List<Node> neighbors;}测试用例格式:简单起见,每个节点的值都和它的索引相同。例如,第一个节点值为 1(val = 1),第二个节点值为 2(val = 2),以此类推。该图在测试用例中使用邻接列表表示。邻接列表 是用

2020-08-12 08:33:48 401

原创 Spring WebFlux (2): mongodb+springdoc 创建 RESTful api

相较于mysql数据库,mongodb是比较早支持响应式等异步读写的nosql数据库,跟mysql一样,可以使用ReactiveCrudRepository快速编写实现crud,而且各层内容都基本相同。整个过程跟上一篇使用mysql相比,只有model使用表不同和配置数据库链接不同之外基本一样,当然mongodb和mysql这两种数据库使用的业务场景不同,mongodb多用来作为文章等的存储数据库,而mysql多用来存储结构性数据。一个示例:使用docker-compose启动mongodb数据库:v

2020-08-11 11:51:19 972

原创 Leetcode:NO.130 被围绕的区域 深度优先搜索

题目给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 'O' 都不会被填充为 'X'。 任何不在边界上,或不与边界上的 'O' 相连的 'O' 最终都会被填充为 'X'。如果两个元素在水

2020-08-11 08:15:53 576

原创 Spring WebFlux (1): r2dbc+mysql+springdoc 创建 RESTful api

随着响应式编程在网络编程中使用越发的普及,mysql等一系列的关系型数据库也在r2dbc等包的帮助下支持响应式。虽然响应式跟原来的sevlet的写法区别比较大,但是spring尽量保持原来的风格,编写control层和service层的方法跟原来基本相同,略有区别就是controller返回的Mono或是Flux。特别是对crud的支持,跟原来的jpa基本相同。例子:1、创建table在mysql数据库中创建一个命名为mydb的数据库,然后创建一个命名为employee的表用于测试, 字段内容如下:

2020-08-10 18:08:38 2179

工作明细 job_to_map

dash作图主体分为两大部分: 一部分是数据部分data,二部分是呈现部分layout。 由于是在网页上呈现,所以layout部分的编写,是基于html语言的的一些标签。 看一下代码:

2018-01-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除