- 博客(43)
- 收藏
- 关注
原创 Daily Review
volatile关键字控制三个线程按顺序交替输出数字123123…事务失效场景@Scheduled默认单线程解决方案慢查询日志排查优化深分页优化事务隔离级别
2025-08-29 14:34:59
209
原创 SpringMVC 工作原理
DispatcherServlet 是 “中枢”:所有请求都经过它,负责协调 HandlerMapping、HandlerAdapter、ViewResolver 等组件,降低组件耦合。组件职责单一:每个组件只做一件事(如 HandlerMapping 只负责找 Handler,ViewResolver 只负责解析视图),符合 “单一职责原则”。拦截器作用于流程节点:通过preHandlepostHandle可在请求处理的关键节点插入自定义逻辑,增强灵活性。
2025-09-08 14:02:48
517
原创 XE 旧版本 JSON 处理
时需要注意该节点必须存在,否则报错。当不确定节点是否存在时,先判断。方法可以将 JSON 对象序列化为 JSON 字符串,使用。方法可以将 JSON 字符串反序列化为 JSON 对象。
2025-09-03 10:32:55
109
原创 [MySQL] 事务隔离级别详解
InnoDB 在 RR 级别下通过 “间隙锁” 防止大部分幻读场景,但如果事务通过 “INSERT …SELECT” 插入数据,仍可能出现幻读,需通过串行化级别或业务逻辑规避。为解决上述并发问题,MySQL 定义了 4 种标准事务隔离级别(基于 SQL-92 标准),不同级别对并发问题的解决能力不同,同时性能开销也存在差异。支持事务和全部 4 种隔离级别;MyISAM、Memory 等存储引擎不支持事务,因此隔离级别对其无效。:隔离级别越高,数据一致性越好,但并发性能越差。:MySQL 中只有。
2025-09-01 15:47:37
630
原创 [java] 控制三个线程按顺序交替输出数字123123…
摘要:本文介绍了两种实现三个线程顺序交替输出"123123..."的方法。第一种使用synchronized和wait/notifyAll机制,通过共享锁和volatile变量控制执行顺序;第二种采用ReentrantLock和Condition,为每个线程创建独立条件变量,实现更精确的线程调度。两种方法都保证了线程按1→2→3顺序循环打印10次,核心在于精准控制线程执行顺序和协作机制。
2025-08-27 15:14:34
120
原创 [Spring] @Scheduled默认单线程解决方案
摘要:Spring的@Scheduled注解默认使用单线程执行任务,导致串行执行和阻塞问题。解决方案是配置多线程调度器,可选用两种方式:1)直接配置ThreadPoolTaskScheduler并设置线程池参数;2)实现SchedulingConfigurer接口自定义线程池。关键需注意线程池大小、线程命名和任务关闭策略,确保任务线程安全。这样可让定时任务并行执行,提高效率。
2025-08-21 13:42:09
361
原创 [Java] volatile关键字
volatile关键字摘要 volatile是一种轻量级同步机制,主要用于保证变量在多线程环境下的可见性和禁止指令重排序。其核心功能包括:确保一个线程修改变量后其他线程能立即看到最新值,以及避免多线程下的执行顺序混乱。典型应用场景包括修饰状态标记变量(如线程控制标志)和单例模式的双重检查锁实现。在状态标记中,volatile确保线程能及时感知状态变化;在单例模式中,它能防止指令重排导致获取到未完全初始化的实例。需要注意的是,volatile不保证原子性,因此不适合用于需要复合操作的场景。
2025-08-21 10:02:08
304
原创 [Android] 签名证书(.keystore)生成指南
本文详细介绍了在Android平台上生成签名证书(.keystore文件)的完整流程。
2025-08-13 11:34:28
940
原创 [SpringBoot2] Redis使用消息队列实现邮件通知的流程说明
本文介绍了基于Redis实现异步邮件通知的系统设计。系统采用生产者-消费者模式,通过Redis队列解耦邮件发送与主业务流程。
2025-08-13 11:11:26
732
原创 [delphi] 使用跨平台库 Kastri
Kastri是一个跨平台开发框架,提供丰富的原生功能实现,支持Android、iOS、Windows和macOS平台。该项目包含多个实用功能模块,如广告支持(Google Ads)、PDF渲染、生物识别、摄像头控制、文件选择器、Firebase消息推送、位置服务、NFC通信等。特别针对移动开发需求,提供了音频/视频播放器、条码扫描、语音识别、文本转语音等多媒体功能,以及应用内更新、应用评分等实用工具。开发者可通过GitHub仓库获取代码,并按照指引集成到项目中。该框架作为Delphi原生组件的增强替代方案,
2025-08-09 09:33:17
867
原创 [mysql] 深分页优化
本文探讨了MySQL深分页查询的四种优化方案。原始查询虽然直观但性能极差,隐式连接子查询通过覆盖索引减少回表开销但仍有偏移量问题。显式内连接在保持性能的同时提升可读性。范围查询通过转化为固定扫描量的条件实现最优性能,但逻辑复杂。最后介绍了游标优化适用于顺序翻页场景。综合来看,显式内连接是平衡性能与可维护性的推荐方案,而范围查询适合超大偏移量场景。各方案需根据具体业务场景选择。
2025-08-04 19:19:45
656
1
原创 [sqlserver] 分析SQL Server中执行效率较低的SQL语句
SQL性能分析与优化摘要 本文提供SQL性能分析和优化方法:1)通过DMV查询TOP 50耗时SQL语句,包含执行时间、CPU耗时、IO操作等指标并进行评级;2)展示如何获取SQL执行计划XML;3)解读执行计划关键点:索引使用效率(Seek优于Scan)、连接类型适用场景(Nested/Hash/Merge)及警告标识识别。重点指出Key Lookup操作应创建覆盖索引优化,高成本节点和大表扫描是主要性能瓶颈。
2025-08-02 15:15:24
243
原创 [.net] ASP.NET Core中使用NLog和注解实现日志记录
本文介绍了在ASP.NET Core中使用NLog实现日志记录的方法。主要内容包括:1) 通过NuGet安装NLog并配置nlog.config文件,设置日志格式、存储路径和归档规则;2) 定义LogAttribute注解类,可配置日志级别、是否记录请求参数/响应结果/执行时间等选项;3) 实现LogActionFilter过滤器,在请求处理前后记录相关信息,支持根据注解配置过滤敏感字段。该方案通过AOP方式实现了灵活可配置的日志记录功能,便于系统监控和问题排查。
2025-07-31 15:46:28
813
原创 [delphi] Multi-Device 调用Andriod原生文件选择器获取文件后上传
介绍在Android平台上使用Delphi调用原生文件选择器并处理文件上传的实现方法。
2025-07-23 10:42:53
154
原创 Docker
需要5.7版本的mysql容器使用镜像mysql:5.7后台运行 -d数据需要持久化 -v开放3306端口 -p设置root的密码 -e停止后自动重启 --restart容器命名为blog_mysql --name之后连接执行数据库执行脚本即可希望后端的镜像当中就包含了后端的jar包,镜像启动的时候默认就是会启动该jar包。编写DockerFile: sg_blog_dockerfile#指定工作目录# 添加jar包到镜像# 声明开放端口# 指定容器运行命令构建镜像。
2025-06-17 13:36:07
866
原创 VMware 安装配置 Ubuntu18.04.6
本文介绍了Ubuntu Server的安装配置与SSH连接管理流程。通过本文可快速掌握Ubuntu Server的基础运维配置和故障排查方法。
2025-06-06 17:38:42
983
原创 win配置exe开机自启
可以启动SSMS,同时产生日志。以管理员运行bat脚本,应用则以管理员身份启动。使用Windows任务计划程序来定时执行这个批处理文件。打开“任务计划程序”。通过按下Win + R键,输入。操作选项卡:新建-启动程序-选择脚本路径-确认。,想启动其他程序修改应用配置部分即可。常规选项卡:名称随意,勾选框内三个选项。条件选项卡:取消勾选电源下这两个选项。触发器选项卡:新建-登录时-确认。以开机启动SSMS为例。重启测试脚本是否生效。
2025-05-13 09:44:19
693
原创 WebSocket (连接前验证token)
用户连接服务器weksocket前,需经过jwt的token验证(token中包含账号信息),验证合法后,才可以于服务器正常交互。
2025-05-12 10:48:15
1074
原创 AOP记录日志
本文介绍了如何通过自定义注解和切面类实现操作日志的记录。首先定义了两个枚举类 OperatorType 和 BusinessType,分别表示操作人类别和业务操作类型。接着,通过 @Log 注解标记需要记录日志的方法,并指定模块、功能、操作人类别等参数。最后,通过 LogAspect 切面类在方法执行后或抛出异常时,记录请求信息、响应数据及异常信息。该方案通过注解和切面的结合,实现了灵活且可扩展的日志记录功能。
2025-05-12 10:37:45
189
原创 声明式/编程式 事务处理
因为对于 spring aop异常捕获原理,被拦截的方法需要显示的抛出异常,并不能进行任何处理,这样 aop 代理才能捕获到方法的异常,才能进行事务的回滚操作;注解,但是A方法的内部调用的方法B,其中方法B进行了数据库的操作,但是改部分的异常被方法B进行了处理并且没有进行抛出,这样的话事务是不会生效的。声明式事务是建立在AOP上的,我们的程序会通过注解的方式提供元数据,AOP与事务元数据结合产生一个代理,当执行方法的时候,拦截器。,A方法内部调用B方法,事务也是不会生效的。注解进行修饰的方法,有。
2025-05-12 10:22:31
289
原创 用Redis的List实现消息队列
介绍如何在 Spring Boot 中使用 Redis List 的BRPOPLPUSH命令来实现一个线程安全且可靠的消息队列。
2025-05-11 18:13:19
1114
原创 uniapp vue2 扫码二维码实现 微信小程序 || APP || H5
微信小程序 || APP || H5 平台使用相机或者从相册扫码二维码。
2025-05-10 20:51:04
524
原创 [SpringBoot2] 百万Excel数据导入导出
百万级数据导入导出解决方案Spring Boot 、EasyExcel 、MyBatis-Plus、 Disruptor 、MySQL
2025-04-07 15:30:56
199
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅