- 博客(35)
- 收藏
- 关注
原创 14_Spring Boot 跨域(CORS)处理指南
本文系统介绍了Spring Boot处理跨域请求(CORS)的方法。主要内容包括:1)通过pom.xml查看Spring Boot版本;2)针对2.4以下版本,详细说明了使用CorsFilter和WebMvcConfigurer两种配置方式,特别强调携带Cookie时不能使用通配符*;3)针对2.4及以上版本,引入allowedOriginPatterns解决了通配符与Cookie的冲突问题;4)总结不同版本的最佳实践,指出高版本推荐统一使用WebMvcConfigurer或CorsFilter配置。文章还
2025-09-24 16:43:45
599
原创 13_图形验证码生成与校验实战
本文介绍了基于Hutool实现的图形验证码解决方案,主要包含以下核心内容: 实现思路:通过后端生成验证码图片和UUID,存入本地缓存,前端获取并提交验证码进行校验 技术实现: 使用Hutool的CaptchaUtil生成验证码图片 采用Caffeine作为本地缓存,设置3分钟有效期 将图片转为Base64格式返回前端 提供验证码生成和校验的完整工具类 注意事项: 针对Docker部署缺少字体的问题,提供了安装字体的解决方案 建议分布式环境下改用Redis存储验证码 该方案有效防止恶意请求,实现简单且易于集成
2025-09-24 15:39:39
236
原创 12_OkHttp初体验
本文介绍了在Spring Boot项目中集成和使用OkHttp HTTP客户端库的初体验。主要内容包括:1) 通过配置类将OkHttpClient注册为Spring Bean;2) 在application.yml中配置连接超时、连接池等参数;3) 提供了同步GET请求的示例代码;4) 分享了使用感受,认为OkHttp具有轻量级、高性能、灵活性强等特点,支持同步和异步请求。作者总结认为OkHttp简单易用性能强劲,适合需要大量HTTP调用的场景,并计划继续探索更多功能。
2025-09-23 20:51:00
339
原创 03_Integer.valueOf(5)和Integer.valueOf(‘5‘)的区别?
Java 中 Integer.valueOf("5") 和 Integer.valueOf('5') 的区别:前者解析字符串返回数字 5,后者返回字符 '5' 的 Unicode 编码 53。字符串 "5" 是对象类型,字符 '5' 是基本类型,Java 会自动将字符提升为 int 处理。若需将字符转为数字 5,可使用 Integer.valueOf(""+c) 或 c - '0'。理解字符串与字符的本质差异是关键。
2025-09-14 18:22:07
391
原创 11_Mybatis 是如何进行DO类和数据库字段的映射的?
其实,逻辑走到这里就一目了然了,mybatis 映射优先级从上至下依次排列,而且需要注意的是,如果是通过有参构造器进行映射,则会按照构造器参数顺序依次映射,如果结果集顺序,和有参构造器的参数顺序不一致,会导致映射失败。(无论是 Mybatis 自带方法,还是我们手写的方法,Mybatis都会生成代理对象)MyBatis 会生成一个代理对象,最终会调用到。这里会根据 SQL 类型(
2025-08-08 15:48:58
579
原创 10_状态机思想初体验
文章摘要:本文介绍了如何利用状态机思想处理多层级审核流程问题。当常规if-else语句导致代码冗长难维护时,采用有限状态机(FSM)模型可有效解决。FSM通过定义状态集合、触发事件和转移规则,确保审核流程有序流转。实现方案包括:创建完整审核节点链、更新节点状态时校验合法性、自动激活下一节点等核心功能,避免了无序状态跳转,保证了数据一致性和业务规范性。该方法适用于需要严格流程控制的审核场景。
2025-08-06 19:20:27
377
原创 10_Spring Boot 中的 @Scheduled 注解是单线程还是多线程?同步还是异步?
摘要:Spring Boot的@Scheduled注解默认是单线程同步执行的,多个定时任务会顺序执行,可能导致阻塞。可通过配置TaskScheduler、实现SchedulingConfigurer或修改配置文件实现多线程调度。若需异步执行,需配合@Async注解使用。三种线程池配置方式各有利弊,选择取决于具体需求。
2025-07-24 16:55:54
449
原创 09_两个事务方法在同一个方法内执行,如何保证第二个失败时第一个也回滚?
本文讲解了如何确保两个事务方法在同一个方法内执行时,第二个方法失败会导致第一个方法也回滚。核心解决方案包括:1) 在顶层方法声明事务,内部方法不单独声明;2) 使用编程式事务管理;3) 手动管理事务。关键注意点:事务传播行为默认是REQUIRED,避免同类自调用导致事务失效,确保异常能抛出触发回滚。通过合理的事务边界控制,可以实现多个操作的原子性。
2025-07-21 16:12:16
489
原创 06_pt-table-sync 工具解决 MySQL 主从数据不一致
Percona Toolkit中的pt-table-sync工具用于修复MySQL主从数据不一致问题。使用前需安装Percona Toolkit并创建专用用户pt_user,赋予SELECT、PROCESS等权限。关键要求包括:主库binlog必须为ROW格式,从库信息需对主库可见。工具通过processlist或SHOW SLAVE HOSTS发现从库,若自动发现失败可使用DSN手动指定。校验结果存储在percona.checksums表中,需确保pt_user对该库有操作权限。该工具是解决MySQL主从
2025-07-15 16:47:57
526
原创 [特殊字符] 05_Jenkins 部署前端项目实现自动化部署
Jenkins 前端项目自动化部署指南 本文介绍了使用 Jenkins 实现前端项目自动化部署的完整流程: 创建任务 - 新建 Freestyle project 任务 源码管理 - 配置 Git 仓库地址和凭据 Node环境 - 配置 Node.js 构建环境 构建脚本 - 添加 npm install/build 的 Shell 命令 文件传输 - 使用 Publish Over SSH 插件将 dist 目录部署到目标服务器
2025-07-10 14:45:20
524
原创 04_MySQL 通过 Docker 在同一个服务器上搭建主从集群(一主一从)
【代码】04_MySQL 通过 Docker 在同一个服务器上搭建主从集群(一主一从)
2025-06-30 20:00:26
337
原创 06_项目集成 Spring Actuator 并实现可视化页面
📝 项目集成Spring Actuator监控方案摘要本文介绍如何为Spring Boot项目集成Spring Actuator监控功能并实现可视化:1️⃣ 引入Actuator依赖,配置端点路径、暴露策略及详细信息展示2️⃣ 常见端点详解:/health健康检查、/info应用信息、/metrics性能指标等3️⃣ 通过spring-boot-monitor实现可视化监控页面4️⃣ 安全配置:集成Spring Security保护监控接口,设置账户权限控制关键配置包括端点路径自定义、启用详细
2025-06-12 16:31:20
666
原创 03_跨域问题解决
跨域问题及解决方案摘要:跨域是浏览器出于安全考虑实施的访问限制机制,当协议、域名或端口不同时触发。常见场景包括开发阶段本地调用测试接口、自定义请求头提交等。主流的跨域解决方案包括:1)开发阶段配置代理或修改浏览器设置;2)后端配置CORS,Spring Boot可通过全局WebMvcConfigurer、Filter或注解方式实现;3)SaToken框架提供专门的跨域处理配置。其中使用header头提交token的方案通用性最佳,推荐选择。生产环境建议精确配置allowedOrigins而非使用通配符,同
2025-06-09 15:19:38
909
原创 06_Mybatis-Plus LambadaQueryWrapper 表达式爆空指针异常
MyBatis-Plus LambdaQueryWrapper 爆出空指针异常的坑点分析
2025-04-30 15:00:48
384
原创 02_值相同、类型不同,用 equals() 比较为什么是 false?
值相同、类型不同,用 `equals()` 比较为什么是 `false`?
2025-04-27 18:56:39
610
原创 05_springboot配置properties文件后密码正确仍然爆密码错误
springboot配置properties文件后密码正确仍然爆密码错误
2025-04-21 10:38:02
347
原创 04_springboot配置properties文件后数据库连接爆Public Key Retrieval is not allowed
springboot配置properties文件后数据库连接爆Public Key Retrieval is not allowed
2025-04-21 10:28:39
428
原创 02_解决Class com.sun.tools.javac.tree.JCTree
版本,不建议手动指定Lombok版本。在启动 Spring Boot 项目时遇到了错误,原因是使用的Lombok版本 (1.18.26) 与当前JDK21不兼容。通过将JDK版本降为JDK17或提升Lombok至版本1.18.28及以上可解决问题。鉴于管理着依赖的版本,建议调整的版本以确保兼容性,而不是手动指定Lombok的版本。
2025-04-20 21:55:22
343
原创 03_docker 部署 nginx 配置 HTTPS 并转发请求到后端服务
Docker 部署 Nginx 配置 HTTPS 并转发请求到后端服务
2025-04-07 11:20:14
1545
2
原创 01 springboot集成mybatis后密码正确但数据库连接失败
yaml文件读取数字属性时先转化成Integer类型,但是对于Integer类型数字来说,0开头的数字则被解析为八进制,这也导致在连接数据库时密码错误而连接不上数据库。
2025-01-11 19:17:29
1456
原创 【力扣Hot100刷题日记】1-两数之和
给定一个整数数组nums和一个整数目标值target,请你在该数组中找出target的那整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以按任意顺序返回答案。**进阶:**你可以想出一个时间复杂度小于O(n2)的算法吗?
2025-01-11 19:17:10
399
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人