- 博客(136)
- 资源 (1)
- 收藏
- 关注
原创 【Vite】vite.config.ts 配置详解(Vite 8)
Vite 8 作为前端构建工具的性能天花板,相比 Vite 7 优化了冷启动速度、热更新效率和打包体积,尤其适配 Vue3 + TypeScript 技术栈,是当前前端项目的首选构建工具。
2026-04-15 19:12:36
327
原创 【Redis】缓存击穿
缓存击穿的意思是对于设置了过期时间的key,缓存在某个时间点过期的时候,恰好这时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期,一般都会从后端 DB 加载数据,并回设到缓存,这个时候大并发的请求可能会瞬间把 DB 压垮。缓存中的一个Key(比如一个促销商品),在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。后面的线程进来发现已经有缓存了,就直接走缓存。
2026-04-09 11:08:40
418
原创 【Spring】常用注解:@Bean
创建一个MainConfig类,并在该类上添加@Configuration注解,来标注该类是一个Spring的配置类,也就是告诉Spring它是一个配置类,配置类就相当于一个xml文件,最后通过@Bean注解,将Person类注入到Spring的IOC容器中。主要是我们在类上加上@Configuration注解,并在方法上加上@Bean注解,就能够将方法中创建的JavaBean,注入到Spring的IOC容器中。然后,修改MainTest类中的main方法,以测试通过注解注入的Person类,如下所示。
2026-04-08 17:10:30
223
原创 【Spring】@Component VS @Configuration
@Controller(Web 层)、@Service(业务层)、@Repository(数据层),均是 @Component 的语义化扩展,底层逻辑完全一致。,将普通 Java 类,标记为 Spring 容器管理的 Bean,是 Spring 中最基础的组件注册注解。:支持在类内部,通过 @Bean 注解,手动创建 Bean,实现复杂 Bean 的初始化、依赖注入。是管理 Bean 实例、实现依赖注入的核心注解,也是 Java 后端开发必须吃透的基础知识点。
2026-04-08 13:03:20
346
原创 【SpringBoot】过滤器
核心逻辑:通过Java配置类,创建FilterRegistrationBean对象,将过滤器注册到Spring容器中,可直接配置拦截URL、排除URL、执行顺序,无需@WebFilter和@ServletComponentScan,是开发中最常用的方式。而实际开发中,单一过滤器无法满足多场景需求(例如:同时需要登录校验、接口限流、请求日志打印、参数脱敏),此时就需要配置多过滤器,并严格控制其执行顺序——这也是SpringBoot多过滤器的核心价值所在。通过@Order注解指定执行顺序(值越小,执行越早);
2026-04-07 10:36:46
181
原创 【SpringBoot】集成 Knife4j
Knife4j 是一款基于OpenAPI规范(OpenAPI3.0)开发的接口文档工具,核心定位是「接口文档全解决方案」,主打「轻量无冗余、功能强大、UI友好、适配性强」,可独立完成接口文档的生成、调试与交付,适配各类Java后端项目开发需求。in(可选,默认自动识别):参数位置,可选值为header(请求头)、query(查询参数)、path(路径参数)、body(请求体),一般无需手动指定,Knife4j会自动识别。若为必填参数,Knife4j调试时会自动标记为必填。
2026-04-03 17:15:09
459
原创 【SpringBoot】集成 Swagger
OpenAPI Specification(OAS)是由 Linux 基金会主导的开源规范,用于标准化 RESTful API 的描述格式,当前主流版本为 3.0,是前后端协作、接口自动化测试的通用行业标准。,支持接口调试、参数校验、响应预览,彻底解决前后端分离架构下,接口文档维护滞后、手动编写易出错、团队沟通成本高的核心痛点。,全覆盖 Controller、接口方法、请求参数、响应实体、参数忽略等场景。:前端、测试、运维、产品统一依据文档工作,降低沟通歧义,提升研发效率。
2026-04-03 16:43:12
363
原创 【SpringCloud】Nacos 组件:服务注册与发现
打开 mysql-schema.sql 文件,发现其中只能表的创建语句,并没有数据库的创建语句, 且文件中给出数据库的名称建议使用 nacos_config。所以, 需要 添加如下注解。修改 02-consumer-nacos-8080 的配置文件,指定 nacos 服务发现的 group 与 namespace, 就只会调用到指定范围中的服务。这里要搭建的 Nacos 集群中包含三台 Nacos 服务器,由于这些 Nacos 都在同一台主机, 所以这里创建的集群实际只有端口号不同,是个伪集群。
2026-04-03 12:22:06
201
原创 【SpringCloud】Sentinel 组件:blockHandler vs fallback
场景1:订单提交接口(高并发场景),配置Sentinel限流规则(QPS上限100)、熔断规则(失败率上限50%,熔断时长10秒),当请求超出限流阈值或触发熔断时,通过blockHandler返回统一的兜底提示,同时区分不同类型的BlockException,返回更精准的响应。触发时机早于业务逻辑执行(或业务逻辑未执行);核心作用是当业务代码出现错误(如数据库异常、远程调用失败、自定义业务异常)时,提供兜底逻辑(如返回默认数据、友好提示),避免服务崩溃或返回不友好的异常信息,保证业务链路的稳定性。
2026-04-02 08:47:59
428
原创 【SpringCloud】Sentinel 组件:流控规则
默认 coldFactor 为 3,即请求QPS从(threshold / 3) 开始,经多少预热时长才逐渐升至设定的 QPS 阈值。默认coldFactor为3,即请求 QPS 从 threshold / 3 开始,经预热时长逐渐升至设定的 QPS 阈值。设置含义:/testA每秒1次请求,超过的话就排队等待,等待的超时时间为20000毫秒。如 QPS=30,则初始允许 10 QPS,10 秒后提升至 30。匀速排队,让请求以均匀的速度通过,阀值类型必须设成QPS,否则无效。
2026-04-01 17:28:04
442
原创 【MySQL】子查询
如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并进行了条件关联,因此每执行一次外部查询,子查询都要重新计算一次,这样的子查询就称之为关联子查询。同样,如果子查询需要执行多次,即采用循环的方式,先从外部查询开始,每次都传入子查询进行查询,然后再将结果反馈给外部,这种嵌套的执行方式就称为相关子查询。子查询从数据表中查询了数据结果,如果这个数据结果只执行一次,然后这个数据结果作为主查询的条件进行执行,那么这样的子查询叫做不相关子查询。外部的查询语句,称为主查询或外查询。
2026-04-01 10:19:14
409
原创 【MySQL】关联查询(多表查询)
右外连接:RIGHT OUTER JOIN, 以右表为主,先查询出右表,按照ON后的关联条件匹配左表,没有匹配到的用NULL填充,可以简写成RIGHT JOIN。左外连接:LEFT OUTER JOIN, 以左表为主,先查询出左表,按照ON后的关联条件匹配右表,没有匹配到的用NULL填充,可以简写成LEFT JOIN。需要注意的是,如果我们使用了表的别名,在查询字段中、过滤条件中就只能使用别名进行代替,不能使用原有的表名,否则就会报错。:没有任何关联条件,结果集会很大,通常在实际应用中很少使用。
2026-03-31 16:07:26
398
原创 【MySQL】函数:MySQL 信息函数
MySQL中内置了一些可以查询MySQL信息的函数,这些函数主要用于帮助数据库开发或运维人员,更好地对数据库进行维护工作。
2026-03-31 15:40:45
33
原创 【MySQL】函数:聚合函数
这样,我们就既利用了 WHERE 条件的高效快速,又发挥了 HAVING 可以使用包含分组统计函数的查询条件的优点。HAVING 在 GROUP BY 之后,可以使用分组字段和分组中的计算函数,对分组的结果集进行筛选,这个功能是 WHERE 无法完成的。HAVING 则需要先把结果集准备好,也就是用未被筛选的数据集进行关联,然后对这个大的数据集进行筛选,这样占用的资源就比较多,执行效率也较低。因为 WHERE 可以先筛选,用一个筛选后的较小数据集和关联表进行连接,这样占用的资源比较少,执行效率也比较高。
2026-03-30 10:57:04
386
原创 【MySQL】函数:窗口函数
情况2:OVER(PARTITION BY 字段),无ORDER BY、无帧边界:每个分区内的所有行参与计算,例如“SUM(salary) OVER(PARTITION BY dept_name)”表示计算每个部门的薪资总和,同部门每行返回相同的部门总和。底层逻辑:与RANK()、ROW_NUMBER()逻辑一致,先分区、再排序,核心差异在于并列排名后的处理——DENSE_RANK()不会跳过并列名次,无论有多少个并列名次,后续排名均按连续序号递增,确保排名序号无跳跃,仅体现“等级差异”。
2026-03-27 19:23:17
495
原创 【Java】常见加密算法
CBC模式(密码分组链接模式):安全性高于ECB模式,加密前需指定初始向量(IV,Initial Vector),每个明文分组加密时,会与前一个密文分组进行异或运算,相同的明文分组会得到不同的密文分组,适合大量数据、敏感数据加密(如文件加密、数据库敏感字段加密),是开发中AES的首选模式。核心要求:初始向量(IV)需随机生成,长度与AES分组长度一致(128位,即16字节),IV无需保密,但需与解密时完全一致,且每次加密需使用不同的IV(避免相同明文+相同密钥+相同IV导致加密结果重复,降低安全性)。
2026-03-26 10:40:43
316
原创 【MySQL】增删改查(CRUD)手册
通过循环分批删除,每次只删少量数据(比如每次 10,000 行),提交事务,避免长时间锁表和 undo 膨胀。稳定版,遵循阿里巴巴《Java 开发手册》数据库规范,所有语法、示例、场景均贴合真实项目开发。在 Oracle 中删除大表(20GB)中大量历史数据时,如果直接使用。SELECT 后面的字段,要么在 GROUP BY 里,要么用聚合函数。方法二:或者是建新表,插入最新数据,然后直接删除旧表(注意备份)(兼容 emoji,替代不完整的 utf8);(支持事务、外键、行锁,唯一选择);
2026-03-25 10:04:19
323
原创 【MySQL】SQL 优化:关联查询优化
如果是表关联的话,尽量使用inner join ,不要使用用left join | right join,如必须使用,一定要以小表为驱动。straight_join: 效果和 inner join一样,但是会强制将左侧作为驱动表!第二个案例中,子查询作为被驱动表,由于子查询是虚表, 无法建立索引,因此不能优化。上述两个案例,第一个查询效率较高,且有优化的余地。如果两张表**只有一个有索引,那有索引的表作为。两个索引都存在的情况下, 数据量大的 作为。left join 时,左侧的为驱动表,
2026-03-23 15:08:52
446
原创 【Linux】常用命令:CPU性能专项(top、mpstat 等)
是Java后端服务(SpringBoot、微服务、分布式项目)最常见的故障之一:接口响应超时、服务假死、FullGC频繁、线程死循环,归根结底大多是CPU资源瓶颈导致的。:最基础、最常用的CPU监控命令,实时展示系统全局负载、CPU总使用率、进程级CPU占用,是排查CPU问题的第一步。:综合监控CPU运行队列、上下文切换次数,判断是否存在线程竞争、调度异常问题,适用于CPU使用率不高但负载高的场景。:1/5/15分钟等待CPU的进程数总和,理想值≤CPU核心数,超过2倍核心数判定为高负载,需紧急排查。
2026-03-20 12:33:18
348
原创 【Linux】常用命令:sort
不仅能实现基础的字符 / 数字排序,还支持多字段排序、去重、内存优化、大文件排序、自定义分隔符等核心功能,是处理日志、业务数据、配置文件的必备工具。:自定义列分隔符,默认以空格 / Tab 为分隔符,支持逗号、竖线等。:员工 ID、订单编号、端口号、薪资等数字类型数据排序。:CSV 文件、日志文件、竖线分隔的结构化数据处理。:格式化配置文件、缩进代码、格式不规范的日志排序。:英文日志、用户名、域名等不区分大小写的数据排序。:指定按第几列进行排序,支持数字、降序等组合使用。
2026-03-20 09:04:21
390
原创 【MySQL】索引:创建、删除索引
可以看到,查询id和name字段时,使用了名称为MultiIdx的索引,如果查询 (name, age) 组合或者单独查询name和age字段,会发现结果中possible_keys和key值为NULL, 并没有使用在t3表中创建的索引进行查询。使用CREATE TABLE创建表时,除了可以定义列的数据类型外,还可以定义主键约束、外键约束或者唯一性约束,而不论创建哪种约束,在定义约束的同时,相当于在指定列上创建了一个索引。length 为可选参数,表示索引的长度,只有字符串类型的字段,才能指定索引长度;
2026-03-19 15:14:12
336
原创 【MySQL】索引:索引分类
例如,在表中的字段id、name和gender上建立一个多列索引idx_id_name_gender,只有在查询条件中使用了字段id时该索引才会被使用。单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引。该索引指向创建时对应的多个字段,可以通过这几个字段进行查询,但是只有查询条件中,使用了这些字段中的第一个字段时,才会被使用。MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。
2026-03-19 10:51:11
349
原创 【Linux】脚本:console.log 日志定期备份清理
cp 复制备份+清空原文件,不修改程序文件句柄,SpringBoot 无感运行,不丢日志、不中断服务。日志会持续累积、无限增长,不仅占用大量磁盘空间,还会拖慢日志检索效率,甚至引发磁盘告警。,支持手动配置多项目日志路径,全程不重启服务、不丢失日志、不影响业务程序正常运行。:日志保留天数,默认7天,可按需改为15/30天,仅清理日期命名的备份日志。,无需额外配置重定向;:脚本执行日志路径,自动记录每次备份、清理、异常信息,运维排查更便捷。重命名,会导致程序继续往旧文件写入日志,造成日志割裂丢失。
2026-03-18 15:29:35
367
原创 【MySQL】MVCC:实现原理
比如,现在有id为 1 ,2 , 3 这三个事务,之后id为 3 的事务提交了。步骤4:下一个版本的列name的内容是'张三',该版本的trx_id值为8,小于ReadView中的up_limit_id值10,所以这个版本是符合要求的,最后返回给用户的版本就是这条列name为‘张三'的记录。步骤4:下一个版本的列name的内容是'张三',该版本的trx_id值为8,小于ReadView中的up_limit_id值10,所以这个版本是符合要求的,最后返回给用户的版本就是这条列name为‘张三'的记录。
2026-03-18 11:06:02
319
原创 【MySQL】事务:如何使用事务
READ ONLY和READ WRITE是用来设置所谓的事务访问模式的,就是以只读还是读写的方式来访问数据库中的数据,一个事务的访问模式不能同时即设置为只读的也设置为读写的,所以不能同时把READ ONLY和READ WRITE放到START TRANSACTION语句后边。这样的话,我们写入的多条语句就算是属于同一个事务了,直到我们显式的写出 COMMIT 语句,来把这个事务提交掉,或者显式的写出 ROLLBACK 语句,来把这个事务回滚掉。这样在本次事务提交、或者回滚前,会暂时关闭掉自动提交的功能。
2026-03-18 09:39:42
409
原创 【MySQL】事务:事务的隔离级别
Session A和Session B各开启了一个事务,Session B中的事务,先将studentno列为1的记录的name列更新 为'张三',然后Session A中的事务再去查询这条studentno为1的记录,如果读到列name的值为'张三',而 Session B中的事务稍后进行了回滚,那么Session A中的事务相当于读到了一个不存在的数据,这种现象就称之为 脏读。当我们将当前会话的隔离级别设置为可重复读的时候,当前会话可以重复读,就是每次读取的结果集都相同,而不管其他事务有没有提交。
2026-03-17 17:12:25
403
1
原创 【MySQL】常用命令手册
本文覆盖MySQL 8.0+ 标准命令,从基础登录、库表操作,到高级事务、索引、权限、备份恢复,一站式吃透 MySQL 核心命令。
2026-03-16 16:00:21
528
原创 【Vue3】Vue Router 4 路由全解
本文完整覆盖 Vue Router 4 12 大核心知识点,掌握本文内容,即可应对 Vue3 前端开发中 99% 的路由场景,是 Vue 开发者必备的核心技能。
2026-03-16 09:30:25
440
原创 【MySQL】SELECT 语句执行流程
本文将从数据库底层虚拟表(Virtual Table,VT)流转的角度,逐阶段拆解 SELECT 执行逻辑,覆盖单表 / 多表联查、内外连接、分组排序、分页全场景,结合真实开发案例,让你彻底吃透 SQL 执行原理。
2026-03-13 17:20:26
418
原创 【Linux】常用命令:kill、pkill
本文将全面拆解kill与pkill的核心用法、区别、信号机制,结合实际开发中的高频场景,帮你彻底掌握这两个命令,规避实战中的常见坑点。
2026-03-13 11:01:02
441
原创 【Linux】路径区分:testdir、testdir/、testdir/*
【Linux】路径区分:testdir、testdir/、testdir/*
2026-03-11 17:26:23
393
原创 【Linux】权限管理:基础篇
本系列将从基础到进阶,逐步拆解Linux权限管理的底层逻辑、实操技巧与最佳实践,本篇作为开篇,聚焦权限管理的核心基础、用户/组与文件权限的核心操作,搭配场景案例,让你快速上手并理解权限管理的本质。
2026-03-10 15:45:14
384
原创 【Vue3】SCSS 基础篇
SCSS(Sass)作为前端最主流的CSS预处理器,凭借变量、混合器、嵌套等强大扩展特性,彻底解决了原生CSS可维护性差、复用性低、逻辑冗余等痛点,成为前端开发的必备工具。
2026-03-09 11:12:37
429
原创 【Vue3】Vue3 TSX 开发指南
本文将从0 到 1,基于 Vite 构建工具,覆盖 Vue3 + TSX 开发的所有核心知识点,带你彻底掌握 Vue3 TSX 开发技巧。
2026-03-06 10:23:38
439
LED_Trafic.zip
2020-06-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅