自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lgx211

大胆猜测,小心验证

  • 博客(49)
  • 收藏
  • 关注

原创 一文彻底搞定Spring Security 认证,实现登陆登出功能

创建自定义认证过滤器时,需要继承并重写相应的方法。@Override@Override// 可以返回用户信息或 JWT 令牌// 实际上要生成 JWT@Override。

2024-11-03 12:20:29 834

原创 一文彻底弄懂Spring IOC 依赖注入

在 Spring 中,每个被管理的对象称为 Bean。Bean 的定义通常通过 XML 配置文件或 Java 注解(如。

2024-11-03 12:04:57 595

原创 一文彻底熟练掌握并使用Java的NIO操作

NIO 适合构建高性能的 Web 服务器,如 Netty 框架,利用其事件驱动和异步非阻塞的特性,可以处理数万并发连接,而不需要为每个连接创建一个线程。,后者直接在 JVM 之外分配内存,减少了与 JVM 堆内存的交互开销,提升了 I/O 性能,特别是在大数据量传输时。NIO 的通道和选择器机制提供了跨平台的网络通信能力,开发者可以轻松构建支持多种操作系统的网络应用。NIO 的非阻塞特性降低了线程切换的开销,特别是在高并发情况下,提高了应用的吞吐量。进行异步文件读写操作,适合需要高性能的文件处理场景。

2024-10-31 14:11:24 598

原创 一文彻底弄懂Java的IO操作

Java 的 IO(输入/输出)操作是处理数据流的关键部分,涉及到文件、网络等多种数据源。以下将深入探讨 Java IO 的不同类型、底层实现原理、使用场景以及性能优化策略。

2024-10-31 13:55:50 796

原创 一文彻底弄懂spring boot自动装配的过程

Spring Boot 的自动配置机制是它的重要特性之一,极大地简化了 Spring 应用的配置工作。自动配置的核心思想是基于类路径中的依赖、环境配置以及自定义代码进行智能化配置,避免了开发者手动编写大量的样板代码。接下来,我将详细介绍 Spring Boot 自动配置的过程,核心原理以及涉及的关键组件,并结合源码进行深入解析。

2024-10-27 17:55:32 831

原创 一文彻底掌握MySQL的explain执行计划

MySQL 的执行计划是数据库查询优化的重要工具,帮助开发者理解 SQL 查询的执行过程,从而进行性能调优。执行计划详细展示了 MySQL 如何解析、优化和执行 SQL 语句,直接影响查询的效率和性能。

2024-10-26 14:28:18 600

原创 一文彻底弄懂MySQL优化之深度分页

深度分页在处理大数据集时会引发性能问题,但可以通过多种优化策略来改善性能,如基于主键的游标分页、使用索引、懒加载等。选择合适的策略取决于具体的业务需求和数据特性。务必进行性能测试,以找出最适合应用场景的解决方案。

2024-10-26 14:05:49 545

原创 一文彻底弄懂MySQL的各个存储引擎,InnoDB、MyISAM、Memory、CSV、Archive、Merge、Federated、NDB

存储引擎主要特点适用场景InnoDB支持事务、行级锁定、外键支持高并发事务系统(如银行、电子商务平台)MyISAM不支持事务、表级锁定、全文索引支持静态数据存储、读多写少的系统Memory数据存储在内存中,速度快临时数据处理、缓存、会话管理CSV数据存储为文本文件,便于数据交换数据导入导出场景Archive只支持插入和查询,数据压缩日志数据存储、大规模历史数据归档Merge合并多个 MyISAM 表分区数据管理Federated分布式数据库系统,跨服务器查询。

2024-10-25 10:45:25 569

原创 一文彻底弄懂MySQL的优化

查询优化索引设计表结构设计事务控制配置调优等。在企业级 Web 开发中,不同业务场景下的优化需求有所差异,通常需要结合业务的实际需求做出合适的权衡。通过持续监控与调优,可以让 MySQL 数据库在高并发、大数据量的场景中保持高效稳定的性能。来不及拥抱清晨,就已经手握黄昏。曾经的我苦苦找寻这份答案,如今已工作8年,已经是30岁的程序员了。时光流逝,白驹过隙,留给八年前的自己的答案。

2024-10-24 14:26:59 478

原创 一文彻底搞透Redis的数据类型及具体的应用场景

Redis 中最基本的键值对类型,键和值都可以是字符串,值的最大限制为 512MB。String类型是 Redis 最常用的数据类型,它支持简单的GETSET操作,以及自增、自减、字符串拼接等操作。哈希是一个键值对集合,适合存储对象。每个键可以有多个字段,每个字段都有一个值。操作包括HSETHGETHDEL等。列表是一个双向链表,可以从头部或尾部插入、删除元素,常用命令包括LPUSHRPUSHLPOPRPOP等。Redis 支持阻塞操作,如BLPOPBRPOP,在没有元素时可以阻塞等待。

2024-10-24 01:50:23 816

原创 一文彻底搞定Redis与MySQL的数据同步

Cache Aside Pattern(旁路缓存模式):常用于读多写少的场景,写操作时删除缓存。异步更新(Write Behind):先更新缓存再异步写入 MySQL,保证最终一致性。双写策略:同时更新 Redis 和 MySQL,配合事务机制确保一致性。延迟回写:通过定时批量写入 MySQL 减少频繁数据库操作。每种策略有不同的适用场景,设计时需要考虑一致性、性能和可用性之间的平衡。这算得上是全网最全最详细的,货真价实的同步方案分析了,完全结合真实业务场景来考虑设计。

2024-10-23 12:38:36 1006

原创 一文彻底弄懂并解决Redis的缓存雪崩,缓存击穿,缓存穿透

缓存雪崩是指在某一时刻,大量缓存同时失效,导致大量请求直接打到数据库层,造成数据库压力骤增,甚至可能导致数据库崩溃、系统不可用的情况。缓存击穿是指缓存中存储的某个热点数据在某一时刻失效,大量并发请求同时去访问这个热点数据,导致所有请求打到数据库,造成数据库压力骤增的情况。缓存穿透是指恶意用户或程序请求查询的数据在缓存和数据库中都不存在,导致每次请求都会直接打到数据库,绕过缓存。由于缓存没有存储该请求的结果,所有这类请求都会绕过缓存,直接访问数据库,从而导致数据库承受巨大的压力。

2024-10-22 11:03:27 1215

原创 一文彻底弄清Redis的布隆过滤器

布隆过滤器是一种空间效率极高的数据结构,适用于需要快速判断某个元素是否存在的场景,尤其适用于防止缓存穿透、垃圾邮件过滤、大数据去重等场景。虽然它存在一定的误判率,但其出色的空间效率和查询性能使其成为许多大规模应用中的重要工具。

2024-10-21 13:06:17 997

原创 一文彻底弄懂MySQL的MVCC多版本控制器

MVCC 是 InnoDB 实现高并发事务处理的重要机制,通过维护多版本数据和不加锁的快照读,解决了传统数据库加锁所带来的并发性能问题。MVCC 结合事务的隔离级别,保证数据的一致性和隔离性,使得 MySQL 在高并发场景下依然能保持较高的性能。通过事务 ID、Undo Log、一致性视图等机制,InnoDB 能够高效地管理事务间的数据访问,从而避免常见的并发读写问题,例如幻读不可重复读等。

2024-10-20 09:17:55 770

原创 一次彻底掌握数据中心级的JVM调优实战经验

出现内存溢出的场景通常发生在应用程序中存在内存泄漏、对象生命周期过长、对象频繁创建但未能及时回收等问题。以下是几个真实的业务场景,结合内存溢出问题,并从多个角度提出优化方法,来提高内存使用效率。

2024-10-18 18:23:54 634

原创 一文彻底弄懂mysql的事务日志,undo log 和 redo log

Undo Log保证了事务的原子性和隔离性,在事务回滚和多版本并发控制(MVCC)中起到关键作用。Redo Log保证了事务的持久性,在系统崩溃后可以恢复已提交的事务操作,确保数据一致性。在实际的业务系统中,Undo Log 和 Redo Log 是支撑 MySQL 数据库事务和恢复机制的基础。Undo Log 主要用于撤销未完成或回滚的事务操作,而 Redo Log 则用于保证已提交的事务在系统崩溃时能够得到恢复。

2024-10-17 16:23:45 963

原创 一次彻底讲清如何处理mysql 的死锁问题

MySQL 死锁是数据库在并发场景下常见的问题,特别是对于大规模、复杂的业务系统,死锁问题更为频繁。通过合理的索引设计、保持加锁顺序一致、缩短事务时间、优化锁策略等手段,可以有效减少死锁的发生。同时,当死锁发生时,MySQL 具备死锁检测和自动回滚机制,开发人员可以通过合理的异常处理和重试机制,来提高系统的稳定性和可靠性。秋是慢入的,但冷却是突然的,晴不知夏去,一雨方觉秋深!上海有点冷了。

2024-10-17 15:43:19 888

原创 MySQL 通过 Next-Key Locking 技术(行锁+间隙锁)避免幻读问题

Next-Key Locking 是一种锁定区间行锁(Record Lock):锁定精确的一行数据,防止其他事务对该行数据的修改。间隙锁(Gap Lock):锁定一行数据之间的“间隙”,防止其他事务在该间隙中插入新数据。Next-Key Locking 锁住了当前查询的行及其“前后”的间隙,这样不仅可以防止已有记录的修改,还能防止在查询范围内插入新数据,避免了幻读问题。通过将行锁和间隙锁结合起来,解决了MySQL中隔离级别下的幻读问题。

2024-10-16 23:08:10 1065

原创 vue前端自适应布局,一步到位所有自适应

1,左右布局- 左侧固定宽带,右侧自适应剩余的宽度。- 中间一条分割线,可以拖拉,自适应调整左右侧的宽度。- 左侧的高度超长自动出现横向滚动条,左侧宽度超长,自动出现竖向滚动条。2,上中下布局- 最上面的 搜索条件 div 固定占用 100 px 高度,下面的 查询条件 div 固定占用 30 px 高度,最下面的分页固定占用高度,页面剩下的高度自动分配给中间的表格内容。- 表格内容高度超过后自动出现竖向滚动条,宽度超出后自动出现横向滚动条。- 点击按钮,可以 隐藏/显示 搜索条件 di

2024-08-08 13:55:38 1972

原创 kux转mp4,实测有效,有图有真相

kux转mp4

2023-09-23 18:10:07 924

原创 div上固定,下自适应;div左固定,右自适应

一,上固定,下自适应二,下固定,上自适应三,上下固定,中间自适应四,左固定,右自适应五,仿网站布局六,仿xshell布局

2022-05-06 17:36:58 1520

原创 由浅深入理解java多线程,java并发,synchronized实现原理及线程锁机制

由浅深入理解java多线程,java并发,synchronized实现原理及线程锁机制文章目录由浅深入理解java多线程,java并发,synchronized实现原理及线程锁机制一,线程的生命周期二,线程的调度调整线程优先级线程睡眠线程等待线程让步线程加入线程唤醒三,创建多线程的方式1,通过实现Runnable接口2,通过继承Thread类四,多线程间的数据共享1,Runnable接口实现多线程的数据共享2,Thread类实现多线程的数据共享五,synchronized实现多线程数据共享1,修饰实例方法

2021-10-24 22:46:41 818

原创 vue打开新窗口并且实现传参,有图有真相

我要实现的功能是打开一个新窗口用来展示新页面,而且需要传参数,并且参数不能显示在地址栏里面,而且当我刷新页面的时候,传过来的参数不能丢失,要一直存在,除非我手动关闭这个新窗口,即浏览器的标签页。通过面向百度编程,发现网上的根本达不到这个效果,而且还都是坑,明明实现不了,还若有其事的写出来,于是我在标题特意加上有图有真相,诚我不欺,实现不了功能,就不要出来糊弄人。先把我做好的代码写出来,后面再介绍别人实现不了的坑,以及这方面相关要注意的。打开新窗口并传参代码//打开新窗口并传参,参数不能显示在地址栏里

2021-03-04 13:11:09 3277 9

原创 vue(element)中使用monaco实现代码高亮

使用的是vue语言,用element的组件,要做一个在线编辑代码,要求输入代码内容,可以进行高亮展示,可以切换各不同语言,而且支持关键字补全,还要有一个各不同版本间的代码左右比较,这就是需求。至于为什么选中monaco,请查看 vue(element)中代码高亮插件全面对比好了,现在正式开工吧!首先需要下载monaco-editor组件,monaco-editor-webpack-plugi...

2020-04-19 15:02:51 3506 5

原创 vue(element)中使用codemirror实现代码高亮,代码补全,版本差异对比

vue(element)中使用codemirror实现代码高亮,代码补全,版本差异对比使用的是vue语言,用element的组件,要做一个在线编辑代码,要求输入代码内容,可以进行高亮展示,可以切换各不同语言,而且支持关键字补全,还要有一个各不同版本间的代码左右比较,这就是需求。至于为什么选中codemirror,请查看vue(element)中代码高亮插件全面对比好了,现在正式开工吧!首先...

2020-04-17 15:19:07 6058 1

原创 vue(element)中代码高亮插件全面对比

文章目录全面对比从活跃方面来看从功能方面来看深入对比1,ace2,codemirror3,monaco4,结论全面对比从活跃方面来看从功能方面来看代码高亮是必须的,社区必须活跃,不然修复bug没有一点点参考,太费时间。自动补全缩进,快捷键操作,搜索和替换等功能不是必须的,如果有,能拿来装逼当然最好,不能也不影响使用。故而挑出了以下几个,再具体分析,逐个调查,查看后续开发,部署的坑,坑...

2020-04-16 09:25:18 8313 3

原创 Error in v-on handler: “TypeError: Cannot read property ‘value‘ of undefined“

Error in v-on handler: “TypeError: Cannot read property ‘value’ of undefined”报错如下所示,即在运行Vue项目时出现了上述错误,出现该错误的原因是其容器还未生成就对其进行了初始化所造成的。首先检查有没有如下操作//原先取dom的操作document.getElementById('textarea');//改...

2020-04-14 10:26:52 19506 2

原创 三台服务器上离线安装redis哨兵集群,一主二从三哨兵

三台服务器上离线安装redis哨兵集群,一主二从三哨兵系统安装好gcc环境,(不然编译redis会报错)。依旧不知道怎么离线安装gcc环境的可查看CentOS下离线安装gcc环境,图文详细下载点击官网地址下载Linux版的redishttp://download.redis.io/releases/redis-5.0.4.tar.gz上传put D:\AppStore\redis\re...

2020-04-07 11:35:06 720 1

原创 CentOS下离线安装gcc环境,图文详细,方法全面

CentOS下离线安装gcc环境,图文详细,方法全面下载方式1:如果有网的虚拟机还没有安装,可以直接yum install --downloadonly --downloaddir=/root/soft/gcc gccyum install --downloadonly --downloaddir=/root/soft/gcc++ gcc-c++方式2:如果有网的虚拟机已经安装过,可...

2020-04-07 11:17:49 7239

原创 超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数

超详细,多图文使用galera cluster搭建mysql集群并介绍wsrep相关参数介绍galera cluster原理的文章已经有一大堆了,百度几篇看一看就能有相关了解,这里就不赘述了。本文主要侧重实操,因为跟着百度前几页的搭建教程或多或少都有坑,前后配置逻辑矛盾的也有。终于,经过几个通宵的bug修复,反复验证,力求以最简洁的代码,最少的操作量,最直白的逻辑来完成集群的搭建。因为操作过程...

2020-03-12 16:19:50 6397

原创 多图文,详细介绍mysql各个集群方案

多图文,详细介绍mysql各个集群方案集群的好处高可用性:故障检测及迁移,多节点备份。可伸缩性:新增数据库节点便利,方便扩容。负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。集群要考虑的风险网络分裂:群集还可能由于网络故障而拆分为多个部分,每部分内的节点相互连接,但各部分之间的节点失去连接。脑裂:导致数据库节点彼此独立运行的集群故障称为“脑裂”。这种情况可能导致数据不...

2020-03-10 17:02:19 7752 1

原创 超详细,多图文介绍redis集群方式并搭建redis伪集群

超详细,多图文介绍redis集群方式并搭建redis伪集群超多图文,对新手友好度极好。敲命令的过程中,难免会敲错,但为了截好一张合适的图,一旦出现一点问题,为了好的演示效果,就要从头开始敲。且看且珍惜。再认识redis集群前,若想先知道redis单机版的可查看,springboot整合redis。好了,下面开始了。每个redis实例可称为一个节点,安装redis并以默认端口启动是节点,不...

2020-03-08 10:49:19 542 1

原创 Could not find a valid gem 'redis' (= 0)

Could not find a valid gem ‘redis’ (= 0)报错详情如下;ERROR: Could not find a valid gem ‘redis’ (>= 0), here is why:Unable to download data from https://rubygems.org/ - SSL_connect SYSCALL returned=5 ...

2020-03-06 11:01:29 1705

原创 SpringBoot学习(七)—— springboot快速整合Redis

Redis缓存文章目录Redis缓存简介优势劣势引入redis缓存代码实战简介redis是一个高性能的key-value数据库优势性能强,适合高度的读写操作(读的速度是110000次/s,写的速度是81000次/s )。支持较为丰富的数据类型(如二进制的Strings, Lists, Hashes, Sets ,Ordered Sets)一定的事物能力(要么执行成功要么完...

2019-12-03 18:31:28 1844 4

原创 SpringBoot学习(六)—— springboot快速整合RabbitMQ

Rabbit MQ消息队列文章目录Rabbit MQ消息队列简介优点缺点Rabbit MQ工作模式1,"Hello World!"模式2,Work queues 模式3,Publish/Subscribe 模式4,Routing 模式5,Topics 模式交换机模式引入RabbitMQ队列代码实战简介优点erlang开发,并发能力强。社区活跃,使用的人多,稳定性较强。延时低缺点er...

2019-11-29 16:34:06 855 1

原创 SpringBoot学习(五)—— springboot快速整合Druid

Druid连接池简介由阿里巴巴开源的druid连接池是目前综合实力最突出的数据库连接池,而且还提供了监控日志功能,能够分析SQL执行情况。引入druid连接池pom.xml中加入<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId&...

2019-11-26 10:15:25 442 1

原创 SpringBoot学习(四)—— springboot快速整合Mybatis组件

MyBatis文章目录MyBatis简介优点劣势引入mybatis组件代码实战简介优点最大的优点是SQL语句灵活,适合调优情景,业务复杂情景劣势最大的劣势是不同数据库之间的迁移引入mybatis组件pom.xml中加入<dependency> <groupId>mysql</groupId> <artifactId>mysql-...

2019-11-25 11:29:06 582 1

原创 SpringBoot学习(三)—— springboot快速整合swagger文档

简介优点后端根据swagger语法,自动生成漂亮规范的接口文档。做交互测试。劣势侵入式的,影响程序运行,尤其是传参的时候。注意swagger 分1.2版本和2.0版本,差异较大。swagger1.2 即 swagger-ui ; swagger2.0 即 springfox-swagger 。本文介绍的使用方式是新的版本,即 springfox-swagger 。发布生产,关闭sw...

2019-11-21 09:43:26 651

原创 SpringBoot学习(二)—— springboot快速整合spring security组件

Spring Security简介spring security的核心功能为认证(Authentication),授权(Authorization),即认证用户是否能访问该系统,和授权用户可以在系统中进行哪些操作。引入spring security组件在 pom.xml 中加入<dependency> <groupId>org.springframework.b...

2019-11-15 16:50:02 573

原创 手摸手带你认识https并实现https通信

文章目录http访问流程https访问流程配置创建密钥库修改XML文件流程概述服务端启用客户端访问服务端任务客户端任务证书证书格式pfx转keystore读取.pfx单向认证双向认证加密/解密对称加密算法DES3DESAES非对称加密算法RSA算法DSAECC综合加签/验签哈希算法MD4MD5SHAJava实现https证书信任TrustManager接口KeyManager接口完整代码实现测试过...

2019-11-13 15:53:20 2057

空空如也

空空如也

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

TA关注的人

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