自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(113)
  • 收藏
  • 关注

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

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

2020-05-13 17:53:02 5956 4

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

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

2020-05-06 18:02:35 555

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

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

2020-05-05 11:44:43 4758

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

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

2020-05-04 12:04:05 3165 3

原创 使用 Docker 快速安装使用 MongoDB

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

2020-05-02 09:52:14 384

原创 使用 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 310

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

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

2020-04-28 15:59:24 2958 1

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

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

2020-04-21 18:07:31 384

原创 ElementUI的table的假分页实现

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

2020-04-15 16:22:06 3940

原创 使用 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 1884

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

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

2019-07-23 11:04:18 4247 1

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

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

2019-06-21 00:14:51 7530 3

原创 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 339

原创 JVM中的GC类型

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

2019-04-27 10:08:07 2187

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

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

2019-03-29 22:03:47 1456

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

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

2019-02-25 22:03:36 21953 1

原创 JVM中的GC算法

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

2019-01-11 17:20:10 1292

原创 高可用的接口安全规范

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

2019-01-06 17:48:56 15988 1

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

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

2018-12-27 15:23:29 7395 11

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

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

2018-11-28 10:01:03 6778

原创 使用结巴分词(jieba)对自然语言进行特征预处理(Python、Java 实现)

一、前言之前使用基于 Python 语言的 Spark 进行机器学习,编程起来是十分简单。① 但是算法部署到云服务器上,是一个障碍。② 得借助 Flask/Django 等 Python Web 开发框架,同时这些框架的部署又是一个障碍。③ 借助 Docker 来简化部署,Spark 环境又是一个障碍。近来试着将之前的Python版算法改写为 Java 版本。首先是 jieba 分词的...

2018-11-14 11:17:48 5108

原创 使用 Spark ML + Jieba + Pandas 实现一个疾病智能诊功能(Python)

一、前言电子病历,很多市中心医院都在使用,却很少有人将其中的数据用于机器学习,以达到智能诊断的功能本文对此做了一个实战案例。二、可行性分析1、功能介绍:用户输入个人身体特征的信息,机器返回最可能的得出的疾病类型及其可能性 %。2、分析:① 用户输入个人病症时,为一段 中文 字符串② 首先要进行做特征处理,即将文字进行分词(英文则可以直接跳过!),③ 打上标签 label,进行 S...

2018-11-13 07:54:33 2479 4

原创 《算法图解》学习心得

一、前言在人工智能领域,如机器学习、深度学习等,优先使用 Python 语言进行开发,算法清晰自然,数据分析库齐全。同理,在数据结构与算法的基础方面,从 Python 入手,能很好掌握各类基础算法。之前使用 C -&amp;gt; C++ -&amp;gt; Java,体验不好。臃肿的语法上的障碍,徒增理解难度。而 Python 基本是伪代码的难度了。参考资料:《图解算法》缺点:使用 Pytho...

2018-10-24 17:15:36 1183

原创 使用 Guns 自动生成 SpringBoot + LayUI 的后台管理系统

一、前言1、之前在做 ITAEM团队 的官网,需要做一个用户端(对外宣传,要求极致),一个后台管理端(自己人用,要求不高)。 2、当初 Python 开发,选择 Django,因其自带后台管理系统,因此可以很愉快地省了一个端。 3、但现在业务主流还是用 Java,笔者就想 Java 也能实现,无独有偶,guns 就是其中之一,且秀上一百倍。二、guns 引入这里有一个使用案例:ht...

2018-09-03 16:29:28 10600 6

原创 在 Centos7 中搭建 SVN 服务,借助 TortoiseSVN 轻松进行合作开发

一、前言1、之前在团队里边主要使用 Git/GitHub 进行合作开发 2、后来听在美团师兄,说其内部使用 SVN,笔者当时觉得在 Git/GitHub 大行其道的时代,这有点唱反调点嫌疑。 3、不过后来仔细一想,也是有道理到,SVN 不易内部资源泄露,而一旦泄露信息,大公司的损失将不可估量。 4、之所以使用 Tortoise,是个人觉这是一个简单、通用、老少皆宜的合作方法,且前后端皆宜...

2018-08-28 21:28:54 1955

原创 最简单的 MyBatis Plus 的多表联接、分页查询实现方法

一、前言最近在加强 ITAEM 团队的一个 app 项目, 人员配备:安卓 + 前端 + 后台 后台 DAO 层借鉴了华工其他软件开发团队,使用了新颖强大的 MyBatisPlus 框架,里边有一个类似百度贴吧的发帖子的功能: 而如果设计表,应为帖子表 t_post idtitle 标题content 内容xxuser_id 用户外键 用户表 t_user id...

2018-08-26 18:06:26 297015 92

原创 使用 Vue + ElementUI + Webpack + VueRouter 做后台管理、RESTful 交互

一、前言前端三大 JS 框架 Vue、React、Angular 都用了一段时间了,最后还是回归于 Vue JS demo Vue [增删改查] 使用 Vue2.x + LayUI 做后台管理 CRUD 界面和 REST 交互 React [增删改查] 使用 React + LayUI 做后台管理 CRUD 界面和 RESTful 交互 An...

2018-08-25 00:00:52 49425 24

原创 使用 Vue + LayUI 做后台管理、RESTful 交互

一、前言1、之前使用了 React/Angular,使用起来显然是比 jQuery 好多了,但时隔半年,最近再次深入研究了 vue,很惊喜。 故以后选择 MVC/MVVM 框架的话,建议首选 vue,主要是其代码结构,清晰简单。2、使用 vue + layui 了,但 layui 里边的 layui.js 模块 vue.js 冲突, 因此放弃使用 layui.js,导致很多高级...

2018-08-22 14:27:08 97195 19

原创 Spark 2.0 机器学习 ML 库:常见的机器学习模型(Scala 版)

一、前言机器学习中,人为地设计算法,需要一定的知识积淀。 而使用别人设计好的机器学习库如 Spark 2.0 ML,那是基本不需要什么基础的,开箱即用。 首先,看一个简单、完整、规范的案例,无疑是最好的方式。 之前的文章(内含短小精悍的案例): Spark 2.0 机器学习 ML 库:特征提取、转化、选取(Scala 版) Spark 2.0 机器学习 ML 库:机器学...

2018-08-15 17:10:14 13845 7

原创 使用 Django Rest Framework 向前端展示接口

前言之前 Java 开发,基于前后端分离,使用 swagger 向前端展示接口,前端则可以清晰地调用接口,进行页面渲染等操作。 参考文献:Django REST framework 官网 近来为了部署项目中用 python 编写 AI 算法接口,为了无缝对接,使用了基于 python 的 Django,为了展示接口等其他复杂操作,使用了基于 Django 的 Django Rest Fra...

2018-07-31 23:47:20 5194 2

原创 前端使用 Nginx 反向代理彻底解决跨域问题

一、前言由于身处于小团队,作为后台的,不得已参与到前端开发中。首先迎来的就是跨域的问题。 个人觉得使用 nginx 是一种较为简单直接彻底的办法二、流程1、请求后端数据失败 代码如下&amp;amp;amp;amp;amp;lt;!DOCTYPE html&amp;amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;lt;html&amp;amp;amp;amp;amp;gt; &amp;amp;

2018-07-30 15:45:42 64247 3

原创 在 SpringBoot 中引入 MyBatisPlus 之 常规操作

一、前言近来参与一个电力大数据项目,开发小组决定在 DAO 层使用 MyBatisPlus ——国产、新颖、强大、轻量。二、Mapper CRUD下面列出本文相关代码,其他代码如 Druid数据源配置 可以到 github 上查看: https://github.com/larger5/SpringBoot_MybatisPlus.git package com.cun.pl...

2018-07-29 17:34:35 13115 2

原创 在 Django2.0 中完美解决跨域请求的问题

一、前言Django 1.x 版本修改一些配置的名称,如: 版本 settings.py 中间件名称 2.x MIDDLEWARE 1.x INSTALLED_APPS设置跨域请求的时候要注意二、操作 操作前 1.安装 django-cors-headersdjango-cors-headers2.修改 setti...

2018-07-28 21:02:58 13289 5

原创 Python3.6 使用 Docker 快速部署 Django2.0 项目到阿里云服务器上

一、前言之前 nginx + uwsgi3 + python3 + django2 部署 Django 项目,略显复杂,容易出错,不易维护:centos7 下将 Django2.0 项目部署到 阿里云 上(uwsgi3 +Nginx ) 近来在 DaoCloud 上发现了一个热门的 Django 的 docker 镜像 部署了一下项目,相当简单,挺不错,分享下二、常规操作...

2018-07-27 18:58:49 10718 3

原创 前后端分离 在 Flask 1.0 中使用 Flask_WTF 进行表单验证

一、前言Flask 的 WTF 略有特色 独立出一个表单类 作用效果使用方法和 Java JSR 303 类似,只不过Java 方面少了一个类,全注解,我觉得 WTF 若使用 Python 的装饰器也可以实现同 Java 一样的优雅编程效果 Java:SpringBoot 结合 JSR303 对前端数据进行校验 以下是在没有使用模板引擎下做表单验证,基本前后端使用 json 格式进行交...

2018-07-26 22:18:20 2509 1

原创 Python web 框架 Flask 蓝图的正确使用姿势

一、前言最近打算和一位算法大神做一个自然语言处理的 AI 项目 由于算法最好是使用 Python 语言来实现,故业务逻辑不打算使用稳如老狗的 JavaEE,采用轻量级 Python Web 框架 Flask(Django 含太多无关模块,略显笨重) Flask 项目也是有一定的架构,主要指蓝图 网上很多文章把简单的蓝图复杂化, 或是缺少代码文件项目截图,或是代码不全,或是代码没有文...

2018-07-25 20:27:03 3610 1

原创 在 Centos7 下使用 Docker 快速搭建 Hadoop 集群

一、前言按传统方法,能否在服务器上,能否成功搭建 hadoop 集群,取决于配置是否配置成功 在习惯优于配置的时代,已然过时 使用 docker 技术,零配置,10 秒内轻松搭建 hadoop 集群 本文图文并茂,轻松阅读无障碍二、环境搭建主要使用的镜像:kaibb/hadoop2.1.拉取镜像docker pull registry.aliyuncs.com/kaibb...

2018-07-22 12:55:36 6289 3

原创 [Python爬虫] 使用 Beautiful Soup 4 快速爬取所需的网页信息

一、前言之前使用原生的 Python 库去爬取网页信息,经常要使用正则表达式,笔者记性不是很好,经常经常忘记相关符号及其作用。 后来使用著名的 Scapy 框架去爬取信息,感觉太笨重了,特别是一个项目开发到一半,要引入爬虫功能,再使用 Scrapy,就不是那么友好了,其本身就是一个 Web Project。近来使用一个和之前 Java 爬虫特别简单好使的 Jsoup 框架极其类似的 Be...

2018-07-21 23:53:02 9875

原创 前后端分离 SpringBoot + SpringSecurity + JWT + RBAC 实现用户无状态请求验证

一、前言修改自前文,十分贴近公司开发的生产环境 前后端分离 SpringBoot + SpringSecurity 权限解决方案二、代码代码已经放在 github 上了:https://github.com/larger5/SpringBoot_SpringSecurity_JWT_RBAC.git 1.pom &amp;amp;amp;amp;amp;amp;lt;!--安全框架--&amp;amp;amp;amp;amp;amp;gt;

2018-07-16 13:17:57 40317 58

原创 前后端分离 SpringBoot + SpringSecurity 权限解决方案

一、前言之前在团队里边做的项目的基于 session 的登录拦截,属于后端全栈式的开发的模式: 全栈式使用 SpringBoot + SpringSecurity 做登录认证而公司这边都是前后端分离鲜明的,前端不要接触过多的业务逻辑,都由后端解决,基本思路是这样的: 服务端通过 JSON字符串,告诉前端用户有没有登录、认证,前端根据这些提示跳转对应的登录页、认证页等。二、代码下...

2018-07-14 21:43:43 51948 18

空空如也

空空如也

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

TA关注的人

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