自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 延迟队列的实现

延迟队列的集中实现方式

2023-06-29 15:17:04 347

原创 CORS 跨域解决方案

复杂请求则需要2次,先发起options请求,确认目标资源是否支持跨域,浏览器会根据服务端响应的header自动处理剩余的请求,如果响应支持跨域,则继续发出正常请求;简单跨域请求只需要请求一次,复杂跨域请求需要请求2次,第一次是预检请求(options请求),第二次是真是的跨域请求。所以,当触发预检时,跨域请求便会发送2次请求,增加请求次数,同时,也延迟了请求真正发起的时间,会严重地影响性能。crossDomain: true //// 会让请求头中包含跨域的额外信息,但不会含cookie。

2023-01-04 17:40:05 1875

原创 表单防止重复提交

文章目录一、前端拦截1.1 提交按钮不可用1.2 按钮倒计时1.3 ajax提交加锁1.4 提交后重定向到一个提交成功的页面二、后端拦截2.1 token2.2 Cookie 记录token2.3 缓存2.5 数据库添加唯一索引约束三、分布式下后端拦截3.1 锁3.2 数据库添加唯一索引约束日常开发中,增删改查的需求不可避免,表单提交业务不知凡几,防止表单重复提交势在必行,引起重复提交的情况如下:1、提交按钮误操作点击两次2、后端网络请求响应缓慢3、点击提交后的刷新按钮4、浏览器后退按钮,重复

2022-05-18 11:07:07 953

原创 迷迷糊糊的protected

修饰符protected,访问权限,父类中的protected方法,可以被同包或者不同包的子类访问。修饰符当前类同一包内子孙类(同一包)子孙类(不同包)其他包publicYYYYYprotectedYYYY/NNdefaultYYYNNprivateYNNNN这里需要注意,子孙类(不同包) – Y/NY 表示:1、不同包子孙类可以访问父类protected成员变量和方法2、不同包子孙类可以继承父类 prot

2022-02-21 11:08:26 429

转载 IDEA——Java:程序包xxxx不存在终极方案

转载:https://baijiahao.baidu.com/s?id=1666135264347817292&wfr=spider&for=pc

2022-01-19 14:02:55 178

原创 String邂逅字符串常量池

文章目录一、新建了几个对象?二、String.intern()2.1 JDK不同版本中的intern()方法三、字符串常量池在运行时数据区的位置参考:String 字符串常量池如何理解《深入理解java虚拟机》第二版中对String.intern()方法的讲解中所举的例子一、新建了几个对象?String str1 = "aaa"; //新建1个对象String str2 = "bbb"; //新建1个对象String str3 = "aaabbb"; //新建1个对象 Strin

2022-01-18 10:47:59 295

原创 什么是泛型以及原理

文章目录泛型原理**类型擦除**为什么使用泛型,使用泛型的好处?List<? extends T>和List <? super T>之间有什么区别 ?泛型原理如果没有设置泛型,获取值时需要强制类型转换public class GenericTest { public static void main(String[] args) { List list = new ArrayList<>(); list.add("a");

2022-01-13 10:54:33 675

原创 雷厉风行--管道

文章目录一、redis 消息交互二、管道压力测试三、深入理解管道本质一、redis 消息交互客户端将请求传送给服务器,服务器处理完毕后,再将晌应回复给客户端 这要花费一个网络数据包来回的时间如果连续执行多条指令,那么会花费多个网络包来回的时间。如果我们多条命令同时执行,同时响应,那么花费的时间就会大大减少。如下图:这里就需要Redis管道的力量了。二、管道压力测试redis提供命令进行压力测试,命令.\redis-benchmark.exe -t set -q ##对set指令进行

2022-01-12 17:27:14 285

原创 节衣缩食--位图

文章目录一、基本用法二、统计和查找三、魔术指令--bitfield3.1 集群环境中不可使用bitfield用户打卡场景,一年的打卡记录,我们可以通过String类型记录每一个用户一年的打卡信息。比如 key:chenbolin_01-01 value:1 一个信息占用16byte,如果1亿用户 占用 543G,需要的存储容量惊人!16 byte * 365 /1024 = 5.7k //一个用户5.7k一亿用户 占用约 543GRedis 提供了位图,本质是一个普通的字符串,也就是by

2022-01-12 16:12:45 188

原创 LRU和LFU

文章目录一、概念介绍LRU,即:最近最少使用淘汰算法(Least Recently Used)。LRU是淘汰最长时间没有被使用的页面。LFU,即:最不经常使用淘汰算法(Least Frequently Used)。LFU是淘汰一段时间内,使用次数最少的页面。二、例子详解假设LFU方法的时期T为10分钟,访问如下页面所花的时间正好为10分钟,内存块大小为3。若所需页面顺序依次如下:2 1 2 1 2 3 4--------------------------

2022-01-12 11:35:58 124

原创 Spring的三级缓存

文章目录一、aop使用注解类 TimeLogLogAspect 切面类AopController 目标类AopControllerTest 测试类二、三级缓存验证1、有`AOP`,无循环依赖2、无aop,有循环依赖3、有aop,有循环依赖结论三、Spring 为什么要引入第三级缓存四、为何要尽可能延迟代理对象的生成参考:https://blog.csdn.net/weixin_36380516/article/details/113904400一、aop使用注解类 TimeLog@Target(

2022-01-07 16:09:28 824

原创 小河捞虾--scan

文章目录一、scan基本用法二、字典结构三、scan遍历顺序和缩容、扩容四、渐进式rehash五、其他数据结构的scan指令六、大key扫描面试题:假如 Redis 里面有 1 亿个key,其中有 10w 个key 是以 某个固定的已知的前缀开头的,如果将它们全部找出来?答:使用 keys 指令可以扫出指定模式的 key 列表。对方接着追问: 如果这个 redis 正在给线上的业务提供服务, 那使用 keys 指令会有什么 问题? 这个时候你要回答 redis 关键的一个特性:redis 的单线程的

2022-01-04 14:53:56 660

原创 Windows10下安装MySQL8.0

文章目录1、下载安装包2、解压文件3、新建目录和文件4、配置系统变量5、初始化并登录mysql6、忘记密码修改方法1、下载安装包下载地址:https://dev.mysql.com/downloads/mysql/2、解压文件将解压文件解压到你安装的目录:D:\soft\mysql-8.0.27 (不要放在有中文名字和空格的的目录下)3、新建目录和文件安装目录下,新建文件夹 data和新建文件 my.inimy.ini 内容[mysqld]# 设置3306端口port=3306# 设

2021-12-23 11:33:56 101

原创 Log4j2漏洞修复

文章目录一、漏洞二、修复漏洞2.1 SpringMVC项目修复2.2 SpringBoot项目修复三、如何攻击漏洞一、漏洞近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。Apache Log4j2 是一款优秀的 Java 日志框架。该工具重写了 Log4j 框架,并且引入了大量丰富的特性。该日志框架被大量用于业务系

2021-12-16 11:15:25 3151

转载 Spring AOP原理深度解析

文章目录AOP使用Spring AOP核心类介绍AOP流程1、创建 AnnotationAwareAspectJAutoProxyCreator 对象2、扫描容器中的切面,创建 PointcutAdvisor 对象3、生成代理Spring Boot 1.x 版本和 2.x版本 AOP 默认配置的变动SpringBoot 集成Mybatis 代理类如何生成的?参考:https://blog.csdn.net/woshilijiuyi/article/details/83934407AOP使用注解类

2021-12-06 11:54:49 232

转载 Vue项目介绍

转载:https://blog.csdn.net/qq_33922980/article/details/89969759

2021-11-17 14:48:21 64

原创 SpringBoot源码编译过程

文章目录一、gradle下载和安装二、SpringBoot 项目下载三、导入IDEA,修改配置项四、出现问题参考:https://blog.csdn.net/smart_an/article/details/107219821https://blog.csdn.net/zxs9999/article/details/113511447?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163662519216780262541617%252

2021-11-12 09:35:47 716

原创 理解Spring `ApplicationListener`和源码

文章目录一、是什么?二、有什么2.1 Spring 内置事件三、干什么?3.1 自定义事件和监听,并触发四、源码理解Spring ApplicationListener和源码参考:https://blog.csdn.net/liyantianmin/article/details/81017960一、是什么?ApplicationContext事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,可以实现ApplicationCont

2021-11-10 14:48:17 85

原创 Maven使用总结

maven使用一 maven常用命令查看项目所有依赖:mvn dependency:tree下载依赖Java Doc:#download for all dependenciesmvn dependency:resolve -Dclassifier=javadoc#download only you needmvn dependency:resolve -Dclassifier=javadoc -DincludeArtifactIds=spring-web下载依赖源码:#dow

2020-12-30 15:09:19 166

原创 00 docker安装

1.5.1 在Win10上准备centos7和大家说明一下,我们的目的仅仅是要安装一个centos7,然后在centos7上安装docker如果搞不定vagrant+virtualbox的方式,也可以直接使用VM搭建一个centos7或者你可以直接使用一台云服务器,上面安装了centos7毕竟我们的目的只是为了得到一个centos7的机器,所以不必花太多精力在这个问题上折腾我上课...

2020-12-05 22:56:40 90

转载 00 docker-compose 安装

文章目录换源curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose赋予权限chmod +x /usr/local/bin/docker-compose验证是否安装成功docker-compose -version...

2020-12-05 22:55:53 71

原创 03 Docker-compose 安装 Redis

文章目录一 配置文件一 配置文件version: '3'services: redis: image: redis container_name: redis restart: always command: redis-server --requirepass 123456 environment: - TZ=Asia/Shanghai volumes:

2020-12-04 17:42:59 89

原创 02 Spring Boot 源头活水

文章目录一 SpringBoot 核心理念1.1 约定优于配置是什么?二 Spring Boot 特性2.1 starter-web依赖,默认支持哪个web容器,可选容器有哪些?三 Spring 注解驱动的的发展过程3.1 Spring 3.X 版本部分注解3.1.1 分析下 `@EnableScheduling` 源码一 SpringBoot 核心理念1.1 约定优于配置是什么?静态文件路径启动默认环境设置,spring.profiles.active默认配置文件,application.ym

2020-12-04 14:11:39 209

转载 04 事务伴生源-MVCC

文章目录一、MVCC1.1 **核心思想:**1.2 **基本数据结构:**二 **版本链**2.1 **ReadView** (快照)2.2 生成 ReadView 的时机2.2.1 **READ COMMITTED --- 每次读取数据前都生成一个ReadView**2.2.2 **REPEATABLE READ ---在第一次读取数据时生成一个ReadView**转载自: 数据库事务MVCC架构一、MVCCMVCC(Multi-Version Concurrency Control,多

2020-12-02 14:51:44 144

原创 03 事务伴生源-Isolation

文章目录一、事务的隔离级别1.1 Spring 事务隔离级别介绍1.2 隔离级别和事务缺陷二 击穿隔离级别2.1 READ_UNCOMMITTED2.2 READ_COMMITTED2.3 REPEATABLE_READ2.4 SERIALIZABLE三 不可重复读和幻读的区别四 悲观锁和乐观锁一、事务的隔离级别1.1 Spring 事务隔离级别介绍  当两个事务对同一个数据库的记录进行操作时,那么,他们之间的影响是怎么样的呢? 这就出现了事务隔离级别的概念。  数据库的隔离性与并发控制有很大关系。

2020-12-01 13:33:52 104

原创 02 事务伴生源-Propagation

文章目录一、Propagation(传播行为)二 通过同类+异类方法调用玩转事务传播性2.1 PROPAGATION_REQUIRED2.2 PROPAGATION_SUPPORTS2.3 PROPAGATION_MANDATORY2.4 PROPAGATION_REQUIRES_NEW2.5 PROPAGATION_NOT_SUPPORTED2.6 PROPAGATION_NEVER2.7 PROPAGATION_NESTED01 Spring ‘拌‘ 事务 中提到事务需要注意以下情况:恰如其分的使用

2020-12-01 10:49:24 147

原创 01 Spring ‘搅拌‘ 事务

文章目录一、Spring 事务二、@Transactional 注解管理事务的实现三、Spring 注解方式事务实现机制四 注解方式的事务使用注意事项4.1 正确的设置@Transactional 的 propagation 属性4.2 自定义 rollbackFor4.4 避免 Spring 的 AOP 的自调用问题一、Spring 事务编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。  声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务

2020-11-30 18:12:58 80

原创 02 docker-compose 搭建 Elasticsearch集群+Kibana

文章目录一 搭建ElasticSearch集群1.1 创建集群目录1.2 修改文件权限1.3 分别在master,node1,node2的 config 目录下创建es.yml文件1.4 创建 `docker-compose.yml`文件二 启动集群三 安装中的问题一 搭建ElasticSearch集群1.1 创建集群目录mkdir -p /home/chenershuai/es/master/config && mkdir -p /home/chenershuai/es/maste

2020-11-25 16:52:07 229

原创 01 Docker

文章目录一 Docker介绍1.1 Docker 守护进程1.1.2 启动`Docker`1.2 Docker 图形界面1.3二 常用命令2.1 查看Docker程序是否存在2.2 查看 容器 日志信息2.3 查看容器中的进程三 docker-compose3.1 `docker-compose.yml` 文件模板docker 和 docker-compose对应四 Docker Dockerfile4.1 什么是 Dockerfile?4.2 使用 Dockerfile 定制镜像一 Docker介绍构

2020-11-23 17:12:00 93

原创 Linux小记

文章目录一 Linux 安装1.1 磁盘分区1.1.1 `磁盘连接方式`与`装置文件名`的关系1.1.2 `MSDOC(MBR)` 和 `GPT` 磁盘分区表(`partition table`)1.1.2.1 MBR 分区表格式与限制1.1.2.2 `GUID partition table`, `GPT` 磁盘分区表1.2.3 开机流程中的 `BIOS` 与 `UEFI` 开机检测程序1.1.3 Linux 安装模式下,磁盘分区`及其`重要1.1.3.1 目录树结构 (directory tree)二

2020-11-23 17:04:24 560

转载 B+Tree介绍及在数据库中的使用

文章目录一 B+Tree 和 B-Tree二 InnoDB中一个3层B+树最多大概可以存放多少行数数据?问题1: 因此,我们首先解决一个简单一点的问题:那么如果是2层的B+树,最多可以存储多少行数据?问题2 最后再回到原来的问题:一个三层的B+树可以存放多少行数据呢?问题3:为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树?转载: https://www.cnblogs.com/shengguorui/p/10695646.html一 B+Tree 和 B-Tree在B+Tree中,所有

2020-11-20 17:42:30 518

原创 java引用和对象

文章目录java引用和对象1 引用和对象不明引发的bug?2 原因java引用和对象1 引用和对象不明引发的bug?public class Utils { public static void main(String[] args) { List<String> strList = new ArrayList<>(); Ut...

2020-03-26 10:13:19 64

原创 01 字符串优化处理

1.针对常量池的优化针对常量池的优化是指: 当String对象拥有相同的值时,他们只引用常量池中的同一个拷贝.public static void main(String[] args) { String str1 = "abc"; String str2 = "ab" + "c"; String str3 = new String("abc"); Syste...

2019-12-04 09:28:14 90

原创 02 多线程GC overhead limit exceeded

一 问题近期使用 OPI用户模式去读取excel,excel有10万条数据,运行jar包,异常如下:Exception in thread "pool-2-thread-3" java.lang.OutOfMemoryError: GC overhead limit exceeded at org.apache.xmlbeans.impl.store.Cur$CurLoadCo...

2019-12-02 15:08:16 764

原创 001 Can't attach to the process

[top]### 一 问题执行jinfo -flags pid报错,错误信息如下:Attaching to process ID 25985, please wait...Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the processsun.jvm.ho...

2019-12-02 14:38:42 426

原创 001 POI解析excel的两种方式

一 问题引发思考数据量10万行(excel文件6.8M),使用5个线程各执行2万行,部分线程报错Exception in thread "pool-2-thread-4" java.lang.OutOfMemoryError: Java heap space;引发思考,增大堆内存吗? 增加多少呢?如何分析? 处理增加堆大小,有其他解决办法吗?2万行数据, 6.8/5 = 1.36M; POI...

2019-12-02 14:37:51 1232 1

原创 Ubuntu安装MySQL

文章目录一、安装二、配置2.1 登陆MySQL2.2 授权其他设备连接MySQl三、mysql远程连接 Host * is not allowed to connect to this MySQL server一、安装在Ubuntu系统 root 用户下执行:sudo apt-get update;sudo apt install mysql-server; //默认安装最新版本中间...

2019-08-22 22:17:24 98

原创 多线程(一)FutureTask简单介绍

文章目录多线程(一)FutureTask简单介绍一、FutureTask介绍1.1 FutureTask 的继承机制如下:1.2 FutureTask的使用如下:多线程(一)FutureTask简单介绍一、FutureTask介绍FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的,并且有三个状态:等待、运行和完成。完成包括所有计算以任意的方式结束,包括正...

2019-08-01 15:53:38 196

转载 Spring @Scheduled定时任务三种定时类型

文章目录一、三种定时类型1.cron二、执行周期图解## Spring @Scheduled定时任务三种定时类型一、三种定时类型1.cron当时间达到设置的时间会触发事件。@Scheduled(cron="0/5 * * * *?") 表示从0s开始执行,每5秒执行一次,例如:12:00:00,、12:05:00等时间点执行定时任务。2.fixedRate 固定时间循环执行,单位ms...

2019-08-01 13:32:45 1016

原创 通过 HandlerMethodArgumentResolver 自定义入参类型

文章目录简介代码自定义注解 @LoginUser自定义一个解析器LoginUserHandlerMethodArgumentResolver使用简介调用接口时,有可能有能多参数,Spring项目中就会定义很多的@RequestParam,让我们很抓毛。好在Spring 3.1开始提供的接口HandlerMethodArgumentResolver,实现此接口可以自定义对象,比如可以解析自定义的...

2019-07-31 16:26:56 229

空空如也

空空如也

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

TA关注的人

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