3 IT小村

京东 - Java工程师

我要认证

test CSDN

等级
TA的排名 5k+

前后端分离模式下验证码实现

一、前言验证码,主要用于防刷,特别是注册页面。如果没有防刷机制,攻击者可以通过爬虫等技术,批量注册空虚的用户。二、正文前端使用 Vue,并借助 ElementUI 简单美化页面;后端使用 SpringBoot,并借助 Kaptcha 生成验证码。1.思路①用户进入 web 页面,前端请求后端生成一幅带验证码图片给前端②后端生成图片的同时,将图片中的正确验证码 rightCode 存到Redis中,key 为用户的ip,value 为正确码,有效时间 几分钟(MySQL 也行,不过不如 Redi

2020-05-13 17:53:02

使用 纳米级 加载进度条 NProgress 增强网页交互感

一、前言最近想给页面加载请求加个进度条,让用户感知自己的操作产生的影响以及进度如何。自己写比较费劲,而网上肯定有很多成熟的插件。NProgress,自称可以达到 Google, YouTube, and Medium 等知名应用的进度加载条同样的效果,笔者看了试了试,确实如此,故写本文分享这个趣味十足的插件。官方体验地址:https://ricostacruz.com/nprogress/...

2020-05-06 18:02:35

如何在vue项目中增加网页logo

一、前言vue项目中增加网页,操作很简单,就能达到效果:一张图片 + 一行代码 。二、正文本项目是基于 ElementUI 的 element-starter,以做更好的演示。1.代码就增加了如下的代码<link rel="icon" href="../img/MyLogo.png">注意在项目的根目录下,新建一个文件夹如 img,logo 的图片从里边获取,不要在 ...

2020-05-05 11:44:43

SpringDataRedis 中自定义多个 RedisTemplate 实现 Redis 多数据源切换使用

一、前言目前前端堆后端的接口调用,流行携带 token 的无状态 http 请求,token是一种具有有效期的字符串,使用 Redis 来存取,可以说是无缝对接。而 token 有多种类型,如普通用户端的 userToken、管理员端的 adminToken,须分库进行存储(Redis默认 16 个库),这对权限认证区分时会用到,这就涉及到 SpringDataRedis 数据库切换的问题。二...

2020-05-04 12:04:05

使用 Docker 快速安装使用 MongoDB

一、前言Docker 的开箱即用功能,给运维带来极大的便利,公司线上环境也大量地使用了 Docker,弹性计算的思想应用得淋漓尽致。最近只要是涉及服务器环境安装的操作(如安装 MySQL、ElasticSearch…),笔者都会下意思地先试试 Docker,替换原先冗余繁杂的操作,顺应技术的历史潮流。使用 Docker 快速安装使用 MySQL使用 Docker 快速安装使用 Elast...

2020-05-02 09:52:14

使用 Docker 快速安装使用 MySQL

一、前言Docker 提供了开箱即用的功能,为我们省去大量没有技术含量 的工作,应用与 MySQL 方面更是体现的淋漓尽致。二、正文1.安装默认你的 Linux 中安装了 Docker了~docker pull mysqldocker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.72.使用...

2020-04-30 19:23:15

远程服务调用失败重试之简单实现

前言再业务多、并发高的情况下,我们的系统,一般都会拆分为多个子系统,子系统之前通过 RPC 联系。而有些问题实际上不是问题,例如只是网络延迟,方法调用超时,再试一遍就完事了。这时候,重试的引入即势在必行了。正文下面写一个简单的 demo,模拟远程服务重试的最简单实现方式——循环实现模拟调用远程服务重点在于引入 try catch 处理逻辑package com.cun.retry....

2020-04-28 15:59:24

前后端分离 之 vue 中使用 mock.js

一、前言简介:mock.js 是个伪造接口请求数据的 js 插件好处:不用删除频繁增删临时数据。二、正文1.安装 mock.jsnpm install mockjs2.使用 mock.jsdemo项目结构图、关键代码如下3.效果与解释效果如下图:解释:本来应该显示 data 中的数据的:而实际显示mock中的数据:这点有点类似反向代理,将实际请求转交 mock 处...

2020-04-21 18:07:31

ElementUI的table的假分页实现

前言一般我们的 table 都是会通过真分页来实现数据的展示的,但是有一些情况,我们可能会通过假分页的方式,比如数据量小,为了不增加后端接口的复杂性,前端通过假分页来实现分页。正文假分页,其实通过 js 数组的 slice 即可轻松实现,难的是如何响应 ElementUI 中的页码切换、页码大小切换、页面搜索。通过千方百计的测试,笔者最终选择了一个简单可行的方案,那就是在 table 的 ...

2020-04-15 16:22:06

使用 Docker 快速安装使用 ElasticSearch、ik中文分词、head图形界面

一、开头最近使用 ES 完成了一个网站的搜索功能,期间偶遇数坑,悉以填平,觉得有必要分享一波(之前也答应小伙伴继续更新博客)。二、正文可以说,本文是一整套 ES 完整搭建方案,注意点文字加粗。1.Docker搭建ES1.1.Docker 拉取 ES ,注意版本!docker pull elasticsearch:6.5.41.2.开启 ES 容器,注意设置内存大小!docker ...

2020-02-12 16:23:03

局域网下共享 MySQL 数据库连接

一、前言在使用公司从产品,需要特定的 MySQL 版本,还要做一些配置操作,个人为省去这些繁琐的操作,想直接使用同事符合要求的 MySQL 。二、具体方法2.1.数据库设置登录数据库或者在Navicat中,执行以下语句,开放权限# 123 改为你的数据库地址grant all privileges on *.* to root@"%" identified by '123' with ...

2019-07-23 11:04:18

递归算法中的超时问题解决方法

一、前言数据结构里边,在经典的树的前中后序遍历、斐波那契数列问题中,我们使用递归实现,简单明了。然而前者使用了大量的栈内存,后者包含大量的重复计算,因此效率极低。这种思想,应用到算法问题解决中,会不可避免地出现超时现象。如何保证简洁明了的同时,提高效率呢?二、解决方法下面以经典的斐波那契数列为例,给出各类通用的解决方案,使用具有算法主流语言 Python 实现:1, 1, 2, 3,...

2019-06-21 00:14:51

JVM中的GC收集器

一、单线程1.Serial、 Serial Old 收集器二、多线程1.ParNew 收集器是 Serial 的多线程版本。但是它的优势是可以配合 CMS 收集器进行工作,采用的是复制算法。2.Parallel、Parallel Old 收集器吞吐量优先的收集器,可以牺牲等待时间换取系统的吞吐量。三、高新收集器1.CMS 收集器标记清除,最短停顿。2.G1(Garba...

2019-05-10 23:02:59

JVM中的GC类型

一、新生代 GC(Minor GC)原因: 无法为新对象分配空间。二、老年代 GC(Major GC)原因: 对象进入老年代(大的直接 / 小的晋升)大对象:需要大量连续内存空间的Java对象。长期存活:多次Minor GC后仍然存活的对象。三、全局 Full GCFull GC 是针对整个新生代、老年代、元空间的全局范围的 GC。...

2019-04-27 10:08:07

服务端安全之常见加密算法

一、单向散列加密1. 单向散列加密单向散列加密是指通过对不同输入长度的信息进行散列计算,得到固定长度的输出,这个散列计算过程是单向的,即不能对固定长度的输出进行计算从而获得输入信息2. 保存与验证二、对称加密对称密钥加密(Symmetric-Key Encryption),加密和解密使用同一密钥。 优点:运算速度快; 缺点:无法安全地将密钥传输给通信方。1. 加密算法常...

2019-03-29 22:03:47

网络安全中常见的攻击方式

一、前言参与后台开发,回想起来,也有好几年,但对网络安全,一直没有放在心上。后来参与公司上线项目接口安全的开发,才渐渐意识到网络安全的重要性。高可用的接口安全规范下面总结常见的网络攻击方式二、客户端攻击1.XSS攻击XSS攻击即跨站点脚本攻击(Cross Site Script),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻...

2019-02-25 22:03:36

JVM中的GC算法

一、前言最近后台工作的活有点少,闲来回顾了 JVM 的东西,依旧挺有趣的,小结分享。二、算法图解 + 按点小结1. 引用计数原理原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数垃圾回收时,只用收集计数为 0 的对象。缺点:引用和去引用伴随加法和减法,影响性能很难处理循环引用其他应用Python2. 标记 - 清除原理...

2019-01-11 17:20:10

高可用的接口安全规范

一、前言① 上线产品② 涉及会员时长充值③ …这时候,权限安全就显得十分重要了,下面是公司定制的一套高可用的安全机制 v1.0有空更新笔者的 SpringBoot 的实现代码。二、接口安全接口安全一般分三部分:调用方身份令牌token(验身份)、参数签名sign(防篡改)、时效性timestamp(防Doss攻击)一、生成规则:Token:用户登录时,服务器为该用户生成身份令...

2019-01-06 17:48:56

renren-fast 与 renren-fast-vue 与 renren-generator 基本操作

一、前言公司主打产品的,近来发现了一款快速完成前后端 CRUD 的框架 renren-fast,打算用它来 “刷” 小型的外包,积攒资金。个人觉得,renren-fast 主要面向后台开发者,使用方式和 Guns 类似:使用 Guns 自动生成 SpringBoot + LayUI 的后台管理系统① 由于完整开发文档需要费用,② 前端使用 vue,有的后台开发者不清楚。笔者参考了...

2018-12-27 15:23:29

使用 SpringBoot + SpringDataJpa 设计一个通用权限管理系统

一、前言1、2018.11 月份,笔者参与了 广东海洋大学课室管理系统 的开发,开发人员由 ITAEM 软件开发团队(艾腾团队)组成。2、笔者之前参与过 广东海洋大学学生宿舍管理系统 的开发,这次不打算参与无脑耗时的业务逻辑模块(CRUD),负责权限管理系统模块。3、起初打算使用 Shiro/SpringSecurity 来做个这个权限管理系统的。但是由于时间紧迫,业务人员已经写了很多接口了...

2018-11-28 10:01:03

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。