自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

兴趣使然的草帽路飞

最怕你一生碌碌无为,还安慰自己平凡可贵!

  • 博客(21)
  • 资源 (6)
  • 收藏
  • 关注

原创 自定义分页工具类(仿百度搜索分页方式)

案例演示需要用到的相关技术:SpringBoot2.3.xThymleaf模板引擎项目场景:提示:这里简述项目相关背景:例如:项目场景:示例:通过蓝牙芯片(HC-05)与手机 APP 通信,每隔 5s 传输一批传感器数据(不是很大)问题描述:提示:这里描述项目中遇到的问题:例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据APP 中接收数据代码:@Override public void run() { bytes = mm.

2021-01-23 16:00:35 671

转载 JDK集合源码之CopyOnWriteArrayList解析

CopyOnWriteArrayList简介CopyOnWriteArrayList 是 ArrayList的线程安全版本,内部也是通过数组实现,每次对数组的修改都完全拷贝一份新的数组来修改,修改完了再替换掉老数组,这样保证了只阻塞写操作,不阻塞读操作,实现读写分离。ArrayList源码分析请参考:JDK集合源码之ArrayList解析CopyOnWriteArrayList继承体系从继承体系得出:CopyOnWriteArrayList实现了List, RandomAccess, Cl

2021-01-20 12:51:50 720

原创 JDK集合源码之HashTable解析

HashTable与HashMap对比对于HashMap源码剖析,可以参考:JDK集合源码之HashMap解析(上) 以及JDK集合源码之HashMap解析(下) ,HashMap底层红黑树实现(自己实现一个简单的红黑树)1. 二者继的承体系有区别HashTableHashMap从图中可以对比得出,二者都是源于Map口接口,都实现Cloneable和Serializable接口,二者都可以克隆和序列化。但HashMap的父类是AbstractMap,HashTable父类是Dictio

2021-01-20 09:45:49 647

原创 新版本踩坑记录:SpringBoot2.3.x整合ElasticSearch7.6.x(ElasticsearchRestTemplate)包含类型转换踩坑

聚合查询语句# 聚合查询:match_phrase ---> 华为 二字不可以分开GET /skuinfo/_search{ "query": { "match_phrase": { "name": "华为" } }, "aggs": { "categoryName": { "terms": { "field": "categoryName.keyword" } } }}# 聚合查询:m

2021-01-19 16:58:18 1456

原创 ES7.6基本操作以及SpringBoot整合ES7.6的API(RestHighLevelClient)

ES相关操作# ik_smart最少切分GET _analyze{ "analyzer": "ik_smart", "text": "河南科技大学"}# ik_max_word 最细粒度划分!穷尽词库所有可能GET _analyze{ "analyzer": "ik_max_word", "text": "河南科技大学"}# ===================ES索引相关的基本操作=======================# 创建索引(数据库)# 索引库名称

2021-01-17 22:17:06 841 2

原创 JDK集合源码之Vector解析

Vector简介ArrayList 和 Vector 其实大同小异,基本结构都差不多,但是一些细节上有区别:比如线程安全与否,扩容的大小等,Vector的线程安全通过在方法上直接加synchronized实现。扩容默认扩大为原来的2倍。继承体系从图中我们可以看出:Vector继承了AbstractList,实现了List,RandomAccess,Cloneable,Serializable接口,因此Vector支持快速随机访问,可以被克隆,支持序列化。Vector的成员变量(属性)// O

2021-01-16 19:58:20 703

原创 JDK集合源码之HashSet解析

HashSet简介HashSet的特点无序性(存储元素无序)唯一性(允许使用null)本质上,HashSet底层是通过HashMap来保证唯一性HashSet没有提供get()方法,同HashMap一样,因为Set内部是无序的,所以只能通过迭代的方式获得HashSet的继承体系HashSet源码分析1. 属性(成员变量)// HashSet内部使用HashMap来存储元素,因此本质上是HashMapprivate transient HashMap<E,Object&

2021-01-14 11:04:30 593 2

原创 nginx限流案例

nginx限流一般情况下,首页的并发量是比较大的,即使 有了多级缓存,当用户不停的刷新页面的时候,也是没有必要的,另外如果有恶意的请求 大量达到,也会对系统造成影响。而限流就是保护措施之一。生活中限流对比水坝泄洪,通过闸口限制洪水流量(控制流量速度)。办理银行业务:所有人先领号,各窗口叫号处理。每个窗口处理速度根据客户具体业务而定,所有人排队等待叫号即可。若快下班时,告知客户明日再来(拒绝流量)火车站排队买票安检,通过排队 的方式依次放入。(缓存带处理任务)nginx的限流nginx提供两

2021-01-13 18:47:08 581

原创 JDK集合源码之LinkedHashMap解析

LinkedHashMap简介LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问。LinkedHashMap可以看成是 LinkedList + HashMap。LinkedHashMap继承HashMap,拥有HashMap(参考链接:JDK集合源码之HashMap解析)的所有特性,并且额外增加了按一定顺序访问的特性,LinkedHashMap 默认存储顺序为插入顺序,也可按照访问顺序存储元素。案例@Testpublic void test

2021-01-12 10:48:24 574

原创 Spring Cloud 使用Feign调用微服务出现:QueryMap key must be a String:Long异常

错误代码写法,如下:/** * @Auther: csp1999 * @Date: 2021/01/18/15:57 * @Description: 商品微服务SkuController的Feign接口 */@FeignClient(name = "goods")// 调用goods商品微服务@RequestMapping("/sku")//@Componentpublic interface SkuFeign { ... /** * 商品库存递减 *

2021-01-31 11:40:32 758 4

原创 狂神JUC笔记(上)

狂神说JUC哔哩哔哩视频链接地址:https://www.bilibili.com/video/BV1B7411L7tE1、什么是 JUCJUC就是 java.util 下的工具包、包、分类等。普通的线程代码:ThreadRunnable 没有返回值、效率相比入 Callable 相对较低!Callable 有返回值!2、线程和进程线程、进程,如果不能使用一句话说出来的技术,不扎实!进程:一个程序,QQ.exe Music.exe 程序的集合;一个.

2021-01-30 12:19:43 943 4

原创 基于Springboot+Vue+H5实现MiniTalk聊天APP

0. 前言:项目简介项目名称:MINITALK项目基本功能:仿照微信实现一款基于 Netty 的聊天通信 APP,包含聊天功能,扫码添加好友功能,FastDFS 文件系统实现头像上传下载功能。项目待完善功能:朋友圈功能,发送地图定位功能,图片发送功能等,好友详细信息展示功能正在开发,后续完成后会再发一篇博客进行补充,完整代码之后会传到GitHub 和 Gitee 上分享。注意事项:开源不易,大三正是考研和找工作分流的关键一年,为了尽早完成该项目,平时旷课在寝室写了很长时间,查了好多资料和一些开

2021-01-29 13:46:45 1676 5

原创 SpringBoot仿牛客论坛项目实战

Community 论坛项目转载请附带原文链接:1. 环境搭建与技术栈说明1.0 项目架构图1.1 技术要求熟悉快速开发框架:SpringBoot2.3.x 整合 SpringMVC + Mybatis熟悉版本控制:Maven3.6.X + Git数据库以及文件存储:MySQL + 文件存储阿里云OSS熟悉页面模板引擎:Thymleaf3.x第三方工具:网页长图生成工具Wkhtmltopdf + 验证码生成工具kaptcha中间件:分布式缓存Redis + 全文检索Elast

2021-01-29 13:45:53 1398 6

原创 畅购第10天项目总结(购物车与用户身份识别)

4. 购物车购物车分为用户登录购物车和未登录购物车操作,国内知名电商京东用户登录和不登录都可以操作购物车,如果用户不登录,操作购物车可以将数据存储到Cookie或者WebSQL或者SessionStorage中,用户登录后购物车数据可以存储到Redis中,再将之前未登录加入的购物车合并到Redis中即可。淘宝天猫则采用了另外一种实现方案,用户要想将商品加入购物车,必须先登录才能操作购物车。我们今天实现的购物车是天猫解决方案,即用户必须先登录才能使用购物车功能。4.1 购物车分析1)需求分析用户在

2021-01-29 13:42:24 851

原创 畅购第10天项目总结(资源服务器授权以及OAuth2对接微服务)

1. 资源服务器授权配置1.1 资源服务授权配置基本上所有微服务都是资源服务。1. 资源服务中配置公钥:认证服务生成令牌采用非对称加密算法,认证服务采用私钥加密生成令牌,对外向资源服务提供公钥,资源服务使用公钥来校验令牌的合法性。 将公钥拷贝到 public.key 文件中,将此文件拷贝到每一个需要的资源服务工程的classpath(resources目录)下,eg: 用户微服务:2. 资源服务中添加依赖:<dependency> <groupId>org.

2021-01-27 20:24:18 670

原创 畅购第9天项目总结(Spring Security Oauth2 JWT)

1. 用户认证分析上面流程图描述了用户要操作的各个微服务,用户查看个人信息需要访问客户微服务,下单需要访问订单微服务,秒杀抢购商品需要访问秒杀微服务。每个服务都需要认证用户的身份,身份认证成功后,需要识别用户的角色然后授权访问对应的功能。1.1 认证与授权身份认证用户身份认证: 即用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问。常见的用户身份认证表现形式有:用户名密码登录,指纹打卡等方式。说通俗点,就相当于校验用户账号密码是否正确。用户授权用户认证通过后去访问系统的

2021-01-26 15:23:32 761

原创 Spring Cloud Gateway 使用JWT工具类做用户登录校验

1. JWT测试/** * @Auther: csp1999 * @Date: 2021/01/24/19:29 * @Description: JWT测试 */public class JwtTest { /** * 创建Jwt令牌: * * JWT = 头部Header + 载荷playload + 签名signature */ @Test public void testCreateJwt() { // 构建

2021-01-24 20:12:00 812 1

原创 Lua脚本基础入门及其案例

lua是什么?Lua [1] 是一个小巧的脚本语言。它是于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。简单来说:Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从

2021-01-13 10:50:38 843

转载 狂神说springboot整合富文本编辑器editor.md

简介在博客园后台的选项设置中,可以看到一个文本编辑器的选项:其实这个就是富文本编辑器,市面上有许多非常成熟的富文本编辑器,比如:Editor.md——功能非常丰富的编辑器,左端编辑,右端预览,非常方便,完全免费官网:https://pandao.github.io/editor.md/wangEditor——基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、界面美观、易用、开源免费。官网:http://www.wangeditor.com/T

2021-01-12 11:51:22 599

转载 JDK集合源码之TreeMap解析(二)

删除元素删除元素本身比较简单,就是采用二叉树的删除规则。(1)如果删除的位置有两个叶子节点,则从其右子树中取最小的元素放到删除的位置,然后把删除位置移到替代元素的位置,进入下一步。(2)如果删除的位置只有一个叶子节点(有可能是经过第一步转换后的删除位置),则把那个叶子节点作为替代元素,放到删除的位置,然后把这个叶子节点删除。(3)如果删除的位置没有叶子节点,则直接把这个删除位置的元素删除即可。(4)针对红黑树,如果删除位置是黑色节点,还需要做再平衡。(5)如果有替代元素,则以替代元素作为当前节点

2021-01-12 11:46:21 511

转载 JDK集合源码之TreeMap解析(一)

简介TreeMap使用红黑树存储元素,可以保证元素按key值的大小进行遍历。继承体系TreeMap实现了Map、SortedMap、NavigableMap、Cloneable、Serializable等接口。SortedMap规定了元素可以按key的大小来遍历,它定义了一些返回部分map的方法。public interface SortedMap<K,V> extends Map<K,V> { // key的比较器 Comparator<? sup

2021-01-12 11:45:23 537

2020最强Java面试题共(6000页).zip

2020最强Java面试题共(6000页)

2021-03-04

elementary(数据结构与算法源代码).zip

elementary(数据结构与算法源代码)

2021-03-04

dnpicture.zip

我的测试Demo

2020-12-28

Java编程思修第4版本学习笔记(上).pdf

Java编程思修第4版本学习笔记(上),总结了Java编程思修这本树1-15章节的内容,我的博客中也有对应的文章供大家阅读~

2020-11-26

Java编程思修第4版本学习笔记(下).pdf

Java编程思修第4版本学习笔记(下),总结了Java编程思修这本书16-21章节的内容,我的博客中也有对应的文章供大家阅读~

2020-11-26

IO、通信中间件Netty入门

Netty 是由 JBOSS 提供的一个java开源框架, 是业界最流行的NIO框 架,整合了多种协议 包括FTP、SMTP、HTTP等各种二进制文本协议)的实现经验,精 心设计的框架,在多个大型商业项目中得到充分验证。

2020-11-06

空空如也

空空如也

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

TA关注的人 TA的粉丝

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