- 博客(420)
- 资源 (41)
- 收藏
- 关注
原创 MyBatis-Plus 框架设计模式全景解析
《MyBatis-Plus框架设计模式全景解析》深入剖析了该框架在3.5.5版本中应用的12种核心设计模式。文章从创建型、结构型到行为型模式分层解读:Builder模式简化参数构建,工厂方法实现零实现类映射,代理模式转换接口调用为JDBC执行等。重点展示了分页查询如何串联四种模式(Builder构造参数→责任链执行插件→策略选择方言→模板方法固定流程),并给出业务扩展建议(如用模板方法实现审计字段)。掌握这些模式既可提升源码阅读效率,又能规范二次开发,还可系统化面试回答。MyBatis-Plus的高效本质是
2025-11-09 16:03:24
671
原创 MyBatis-Plus 通用 CRUD 操作全景指南
摘要:MyBatis-Plus 通用CRUD操作全景指南 本文全面解析MyBatis-Plus(3.5.5+)的通用CRUD操作,从Mapper层到Service层的最佳实践。核心内容包括:BaseMapper的单条/批量操作方法、IService的链式调用与批量处理技巧、分页实现(仅需2步)以及批量性能优化方案(如rewriteBatchedStatements配置)。特别强调框架自动分批处理机制(源码解析),并对比需手动分批的特殊场景。帮助开发者从基础使用进阶到高效实现90%的单表业务需求。
2025-11-09 16:02:44
827
原创 MyBatis-Plus 通用 CRUD 实现原理技术文档
摘要(149字): 本文剖析MyBatis-Plus通用CRUD实现原理,揭示其通过SqlInjector在启动期注入SQL模板(如Insert/SelectById),运行时由TableInfo动态填充占位符生成无XML的MappedStatement。详细拆解了从方法调用到JDBC执行的完整链路,并给出扩展示例(如批量软删除)。关键点包括:模板动态化(%s替换)、TableInfo元数据控制字段逻辑,以及通过AbstractMethod自定义通用操作。最后提供常见问题排查指南,强调该设计兼具标准化与可扩
2025-11-09 16:01:47
774
原创 MyBatis 与 MyBatis-Plus 底层机制原理深度剖析
摘要: 本文深度剖析MyBatis与MyBatis-Plus的底层机制,对比两者在启动流程、SQL执行链路、插件体系等方面的差异。MyBatis通过动态代理和OGNL实现SQL动态拼接,提供灵活的缓存策略;MyBatis-Plus则在MyBatis基础上通过责任链模式无侵入增强,内置分页、乐观锁等功能。开发效率上MyBatis-Plus更优,但复杂场景仍需原生MyBatis支持。建议新项目直接采用MyBatis-Plus,老项目可渐进式迁移,两者组合使用可兼顾效率与灵活性。
2025-09-18 10:16:33
961
原创 一文吃透 MyBatis-Plus `AbstractMethod`:6 个 `addXxxMappedStatement` 全拆解
MyBatis-Plus 核心方法解析:6 种 SQL 注入方式详解 本文深入解析 MyBatis-Plus 3.5.x 中 AbstractMethod 类的 6 个核心 addXxxMappedStatement 方法,这些方法是实现动态 SQL 注入的关键。掌握这些方法可以无需编写 XML 文件即可为 Mapper 扩展通用方法,同时保留 MyBatis 和 MP 的全部功能特性。
2025-09-18 10:15:48
840
原创 深入 MyBatis-Plus SQL 注入器,30 行代码给所有 Mapper 装上「list()」全表秒查
摘要:本文介绍如何在MyBatis-Plus 3.5.x中通过SQL注入器为所有Mapper扩展list()方法,实现全表查询功能。通过三步实现:1)定义MyBaseMapper接口继承BaseMapper;2)创建ListAllMethod生成SQL逻辑;3)编写MySqlInjector注册方法。该方法支持逻辑删除、可扩展分页排序,相比传统selectList(null)更简洁高效。文中还提供了分页/排序扩展方案和常见问题解决方案,帮助开发者快速掌握MyBatis-Plus的SQL注入机制。
2025-09-10 16:54:47
863
原创 Spring Boot + MyBatis-Plus 单数据源多线程事务一致性实践
本文介绍了在Spring Boot和MyBatis-Plus单数据源环境下实现多线程事务一致性的解决方案。针对原生@Transactional注解无法跨线程管理事务的问题,提出了基于编程式事务的解决思路:每个子线程独立开启事务,主线程统一管理所有子线程事务的提交或回滚。通过构建MultiThreadTxTemplate工具类,结合线程安全的数据结构和CompletableFuture实现多线程任务执行与事务管理。方案支持批量任务执行,确保所有子线程要么全部成功提交,要么全部回滚,保证数据一致性。
2025-09-10 16:53:13
1164
原创 为什么 `@Transactional(readOnly = true)` 反而让性能下降 25 %?
摘要:在MySQL+InnoDB+Spring Boot环境下,@Transactional(readOnly=true)可能导致性能下降25%。根本原因包括事务范围过大、MVCC快照维护成本高、连接池配置不当等。解决方案包括:1)将只读查询拆出事务;2)使用分页和索引;3)降低隔离级别至READ_COMMITTED;4)优化连接池参数。优化后性能可提升9%,CPU使用率降低20%。关键结论:性能问题源于"长事务+大查询+高隔离",而非只读事务本身,合理拆分和配置才能发挥其优势。
2025-09-09 17:13:54
540
原创 强大!Spring Boot 事件处理 4 种高级用法(最后一个 99 % 人没用过)
Spring Boot事件处理4种高级用法 本文介绍了Spring Boot事件处理的4种高级用法:1. 继承+多态实现一个监听器处理所有子事件;2. 条件监听使用SpEL表达式过滤事件;3. 事务钩子确保只在事务提交后处理事件;4. 泛型事件通过ResolvableTypeProvider实现按类型自动分发(99%开发者未使用过)。最后提供了一个完整Demo,展示如何通过泛型事件实现不同类型业务对象的精准路由处理,包括UserDTO、OrderDTO和ProductDTO三种业务场景。
2025-09-09 17:12:02
500
原创 AI提示词实战宝典:7大模板+5大技巧,让你的AI助手效率翻倍
在人工智能时代,掌握与AI高效沟通的“语言”——提示词(Prompt),已经成为一项必备的核心技能。将“曾英杰三段式”作为基础,根据需要融入“角色扮演”、“提供示例”、“说人话”等技巧,你就能构建出战无不胜的提示词,真正驾驭AI,让它成为你最得力的助手。要求:语言轻松幽默,结合年轻人熬夜现状,给出3个简单易行的养生建议,字数800字左右,结尾引导关注公众号。“关键结果”让AI的输出可衡量,“试验改进”激发AI的创造性,是项目管理的利器。,我想投资英伟达,但我是保守型投资者,请给出专业建议。
2025-09-09 15:44:21
339
原创 Java新生通关秘籍 | 开学黄金书单限时解锁!
上述书单上的电子书,作者已整理打包,免费赠送!计算机/软件工程新生专属资源包,从青铜到王者全程护航。💥 一键领取大学四年技术加速包!1️⃣ 微信搜索 。
2025-09-08 08:49:03
721
原创 彻底搞懂 Spring `@Transactional` 事务传播行为:REQUIRED vs. REQUIRES_NEW
本文深入解析Spring事务中@Transactional的两种传播行为:REQUIRED和REQUIRES_NEW。通过四维对比表、代码示例和源码剖析,揭示关键差异:REQUIRED共享同一事务(同生共死),REQUIRES_NEW创建独立事务(互不影响)。重点指出REQUIRES_NEW会挂起旧连接、获取新连接的核心机制,并提供常见问题排查清单。最后用"拼车vs专车"形象比喻,强调连接挂起恢复是两者本质区别,为事务问题排查提供明确思路。(149字)
2025-09-08 08:19:18
758
原创 Spring `@Transactional` 底层原理全景解读
Spring @Transactional 注解的底层原理基于AOP和事务管理器实现。启动时扫描注解创建代理(JDK/CGLIB),调用时由TransactionInterceptor处理事务逻辑。通过PlatformTransactionManager管理连接(设置手动提交、ThreadLocal绑定),并根据传播行为决定事务创建/加入方式。常见失效场景包括方法内部调用、异常被捕获等。整个过程实现了声明式事务管理,通过AOP织入事务逻辑完成SQL的原子性操作。
2025-09-08 08:18:39
745
原创 Spring Boot + 事务钩子:用 TransactionSynchronization 解决并发问题的 3 种姿势(附完整代码)
文章摘要:Spring Boot的TransactionSynchronization事务钩子可通过3种方式解决并发问题:1)事务级分布式锁确保库存扣减与事务同步;2)事务提交后发MQ保证消息最终一致性;3)事务完成后自动清理线程变量和临时资源。该方案以约30行代码零侵入地解决锁释放、MQ一致性及资源清理问题,关键点包括:必须在事务线程内注册钩子、避免钩子抛出异常,适用于80%的并发一致性场景。
2025-08-28 15:24:22
497
原创 MyBatis-Plus 乐观锁插件(OptimisticLocker)从配置到原理:一篇就够
摘要:MyBatis-Plus乐观锁插件通过简单配置即可实现高并发安全更新。只需在实体类添加@Version注解并注册OptimisticLockerInnerInterceptor插件,系统自动生成带版本控制的更新SQL,适用于库存扣减等读多写少场景。包含完整配置示例、使用效果、常见问题及最佳实践,实现一行注解即可高并发更的目标。
2025-08-28 15:23:39
321
原创 Java 全栈修炼手册
《大学不迷茫:Java 全栈修炼手册》是一套为期四年的Java全栈学习体系,分8个阶段从基础语法到分布式架构循序渐进。每学期设置明确目标,包含语法基础、Web开发、Spring全家桶、微服务、性能调优等核心内容,并配套电子书、视频和实战项目。专栏提供完整学习路径,帮助大学生系统掌握Java技术栈,最终产出3个GitHub项目、面试题库和可直接写进简历的实战经验。限时优惠59.9元包含全部资源和答疑服务,助力学生高效完成从入门到就业的技术成长。
2025-08-28 11:43:26
881
原创 Spring Bean 生命周期高阶用法:从回调到框架级扩展
Spring Bean生命周期提供了7个关键扩展点,通过InstantiationAwareBeanPostProcessor、BeanPostProcessor等接口可以实现动态代理、多租户装配等高级功能。文章详解了生命周期全景图、6个官方扩展点,并给出3个实战案例:动态代理生成、多租户字段注入和线程池优雅停机。同时指出了常见误区,如循环依赖的解决方案。掌握这些扩展点,就能将Spring容器变成可灵活定制的"装配流水线",实现零侵入的业务扩展需求。
2025-08-26 15:52:55
460
原创 网关资源权限预加载:从冷启动阻塞到优雅上线的完整闭环
摘要:本文介绍了基于Spring Cloud Gateway和Nacos的微服务网关权限预加载方案,解决了冷启动阻塞、优雅上线、动态刷新和故障自愈等核心痛点。通过PermissionHolder状态机实现权限规则统一管理,结合启动阻塞、健康探针和冷启动过滤器等技术,确保网关在权限规则加载完成前不暴露服务。方案支持Nacos动态配置监听和自动上下线,具备多实例一致性保障,并提供故障自愈与一键回滚能力。实测表明,该方案在万级规则下冷启动耗时仅1.2秒,动态刷新50毫秒,为网关权限管理提供了完整闭环解决方案。
2025-08-26 15:50:11
265
原创 《Spring Boot 进阶:从零到一打造自定义 @Transactional》 ——支持多数据源、动态传播行为、可插拔回滚策略
本文介绍了一种基于Spring Boot 3.2.x和JDK 17的自定义@Transactional注解实现方案,解决了多数据源、多租户、精细化回滚和读写分离等痛点。通过设计@CustomTx注解、租户上下文(ThreadLocal)、动态事务管理器和AOP拦截器等核心组件,实现了零侵入、可插拔的事务管理功能。该方案支持运行时按租户切换数据源、自定义传播行为和回滚策略,并通过TransmittableThreadLocal解决线程池值传递问题,为复杂业务场景提供了灵活的事务控制能力。
2025-08-25 11:26:16
438
原创 Docker Compose 部署 Elasticsearch 8.12.2 集成 IK 中文分词器完整指南
本文介绍了通过Docker Compose部署Elasticsearch 8.12.2并集成IK中文分词器的完整方案。内容包括:1)准备匹配版本的IK插件;2)编写Dockerfile构建包含IK分词器的自定义镜像;3)配置docker-compose.yml文件;4)验证分词效果;5)可选的自定义词典配置。文章还提供了常见问题解决方案和使用示例,帮助开发者快速搭建支持中文分词的Elasticsearch环境。该方案具有版本匹配严格、配置可维护性强、便于扩展等特点,适用于开发测试及生产环境。
2025-08-25 11:25:23
323
原创 Spring Boot 校验分组(Validation Groups)高级用法全指南
本文介绍了Spring Boot校验分组的高级用法,通过定义分组接口、按场景声明校验规则和指定校验场景,实现同一DTO在不同业务场景下的灵活校验。核心要点包括分组继承、分组序列和动态分组等高级技巧,以及如何与Spring MVC、Spring Batch等框架集成。该方法能有效避免DTO冗余和重复校验,提升代码复用性和维护性,适用于新增、修改、导入、审核等多种业务场景。
2025-08-23 09:58:27
558
原创 Spring Boot 优雅获取接口参数的 8 大技巧
《Spring Boot 接口参数获取全攻略》摘要:本文系统介绍了Spring Boot中获取各类接口参数的8大技巧,包括路径变量、查询参数、请求体、请求头等常见场景。核心方法包括:使用@PathVariable/@RequestParam获取路径和查询参数,@RequestBody处理JSON/form数据,@RequestHeader/@CookieValue获取请求元信息,以及通过HttpServletRequest兜底处理。
2025-08-23 09:57:43
417
原创 Spring **${}** vs **#{}** 语法全景图
Spring中的${}和#{}语法对比:${}是占位符(启动时静态替换),#{}是SpEL表达式(运行时动态计算)。${}常用于读取配置文件,而#{}支持运算、条件判断、方法调用等高级功能。二者可以嵌套使用,实现动态配置能力。注意${}不支持运算,且#{}在application.yml中无效。合理结合使用这两种语法,能让Spring应用在运行时更灵活高效。
2025-08-03 19:23:16
493
原创 高级开发 | 零人工干预的 @Value 实时刷新
本文介绍了一种实现@Value注解实时刷新的方案,通过动态PropertySource、Spring事件总线构建零人工干预的配置热更新机制。核心是利用AtomicReference存储最新配置,事件驱动自动触发所有带@Value注解的字段重注入。该方法支持毫秒级更新,无需人工干预,且保证线程安全。关键点包括:动态配置源优先加载、事件监听自动刷新、反射机制批量更新字段值,适用于需要实时更新配置的场景。
2025-08-03 19:22:32
416
原创 Spring Boot AOP 优雅实现异常重试机制
本文介绍了如何使用Spring Boot AOP实现优雅的异常重试机制。通过自定义@Retryable注解和切面编程,在不侵入业务代码的情况下,支持可配置的重试次数、间隔时间、特定异常重试和快速失败等特性。核心实现包括:定义重试注解、编写AOP切面处理逻辑、启用AOP自动代理。文章还提供了测试用例和扩展建议(如指数退避、异步重试等),最终实现只需一个注解即可为方法添加健壮的重试能力,有效提升系统在偶发异常情况下的稳定性。
2025-08-03 19:21:52
451
1
原创 Spring Retry 异常重试机制:从入门到生产实践
本文介绍了Spring Retry异常重试机制在生产环境中的应用实践,涵盖注解声明式、RetryTemplate编程式两种实现方式。通过@Retryable和@Recover注解可快速实现方法级重试与降级处理,而RetryTemplate则提供更灵活的细粒度控制。文章重点强调了生产环境的四大要素:合理设置重试次数与退避策略、确保幂等性、完善监控告警,并列举了常见问题及解决方案。最后指出Spring Retry通过AOP实现了无侵入式的系统健壮性提升,适合处理网络抖动等瞬时故障场景。
2025-07-27 18:54:15
810
原创 Spring 容器注入时查找 Bean 的完整规则
本文详细解析了Spring容器在依赖注入时查找Bean的完整规则。核心流程分为四步:首先按类型查找候选Bean,然后通过@Qualifier/@Primary/变量名等过滤歧义,再确定唯一候选,最后创建或返回Bean实例。文章还列举了Bean的多种来源和消除歧义的四种官方方法,并提供了简明的流程图帮助理解。掌握这些规则能快速定位依赖注入问题,提高开发效率。
2025-07-27 18:52:00
435
原创 Spring 容器给 **Bean 起名字(beanName)** 的 7 条绝对规则
Spring容器为Bean命名遵循7条核心规则:1)显式指定(@Component/XML/注册)优先级最高;2)未指定名称时,注解扫描类取首字母小写的类名;3)@Bean方法默认使用方法名;4)FactoryBean添加"&"前缀区分;5)内部类使用"外部类名#内部类名"格式;6)支持占位符和SpEL解析;7)同名Bean后注册者覆盖先注册者(默认报错)。排查时可通过getBeanDefinitionNames()查看命名来源,按规则定位冲突,通过显式命名、
2025-07-27 18:51:19
322
原创 Spring IOC 容器 **默认注册 Bean** 的 8 条规则
本文总结了Spring IOC容器默认注册Bean的8条核心规则:1)环境扫描从启动类所在包递归;2)类级别注解自动注册;3)@Bean方法注册规则;4)@Configuration的特殊逻辑;5)@Import的三类导入方式;6)SPI机制加载自动配置;7)FactoryBean和BeanFactoryPostProcessor的特殊处理;8)默认单例作用域与延迟初始化。理解这些规则可快速定位Spring源码中BeanDefinition的来源,帮助开发者深入理解Spring的依赖注入机制。
2025-07-27 18:50:30
707
原创 进阶!Spring `@Qualifier` 7 大高级技巧 + 源码级原理解析
适用版本:Spring Framework 5.x/6.x 读完本文,你将能 - 在**同一类型多 Bean** 场景下写出零歧义注入; - 利用**自定义限定符**做“按组注入”; - 通过**源码级**理解 Spring 如何解析 `@Qualifier` 与 `@Autowired`。
2025-07-23 19:26:01
523
原创 进阶!使用 @PropertySource 的 7 个高级招式
文章摘要:本文深入解析Spring框架中@PropertySource注解的7个高级用法,突破传统仅能加载properties文件的限制。通过自定义PropertySourceFactory实现YAML/JSON格式支持(①-②),结合@RefreshScope实现动态刷新(③),利用占位符支持多环境配置(④),通过@Order控制加载顺序(⑤)。还演示了从网络/数据库加载配置(⑥)和条件化加载(⑦)等进阶技巧,帮助开发者灵活应对各类配置管理场景。
2025-07-23 19:24:14
466
原创 优雅!通过编程方式重启 Spring Boot 应用的 3 种方案
本文介绍了三种优雅重启Spring Boot应用的方法:1)使用SpringApplication.restart()编程式重启,适合配置热更新;2)通过Actuator的/restart端点实现HTTP触发重启,运维友好;3)自托管脚本结合优雅关闭,适用于JAR升级等需要进程替换的场景。方案1无需外部依赖,方案2需Actuator支持,方案3最通用但需编写脚本。建议根据实际需求选择:配置更新选方案1,运维操作选方案2,重大升级选方案3,高可用集群可结合方案2和3实现灰度重启。
2025-07-23 19:23:17
791
原创 进阶 | 玩转 @ConfigurationProperties 的 10 个高级技巧
本文介绍了Spring Boot中@ConfigurationProperties注解的10个高级用法,包括扁平前缀、嵌套对象、集合绑定、不可变对象、数据校验等技巧。通过对比传统@Value方式,展示了类型安全配置绑定的优势,提供核心代码示例涵盖嵌套校验、构造器绑定、第三方组件配置等典型场景,并总结了4种注册方式和常见问题排查方法。文章强调该注解能实现类型安全、结构化、可校验的配置管理,配合构造器绑定和自定义转换器等特性,可显著提升配置代码的健壮性和可维护性。
2025-07-20 16:20:09
497
原创 Spring Boot 一个注解搞定「加密 + 解密 + 签名 + 验签」
本文介绍了一种基于Spring Boot 3.x的接口安全解决方案,通过自定义注解@ApiSecurity结合AOP切面,实现请求解密、验签、响应加密及加签的自动化处理。
2025-07-20 16:18:49
1026
1
原创 Spring Boot 订单超时自动取消的 3 种主流实现方案
本文介绍了Spring Boot实现订单超时自动取消的3种主流方案:1)基于定时任务@Scheduled的数据库轮询方案,简单但实时性较差;2)利用RabbitMQ延迟队列实现秒级取消,需额外MQ组件;3)通过Redis键过期事件监听,实时性好但需配置Redis通知。三种方案各具特点,开发者可根据业务规模、实时性要求和系统复杂度灵活选择,文中提供了完整代码示例和性能对比分析。
2025-07-20 16:17:47
1120
1
原创 《一行注解解决重复提交:Spring Boot 接口幂等实战》
本文介绍了一种基于Spring Boot的轻量级接口幂等解决方案。通过自定义注解@NoRepeatSubmit配合AOP切面,只需30行核心代码即可实现接口防重复提交功能。方案支持灵活的SpEL表达式定义幂等键,可配置本地或分布式锁,业务零侵入,响应时间小于1ms。文章详细展示了注解定义、AOP实现、依赖配置和常见使用场景,并分析了其工作原理和失效条件。该方案适用于支付、下单等高并发场景,能有效防止重复请求导致的资损问题。
2025-07-19 16:05:58
598
原创 《Spring Boot 插件化架构实战:从 SPI 到热插拔的三级跳》
本文介绍了Spring Boot插件化架构的三种渐进式方案:基础级Spring SPI(零依赖,启动期加载)、轻量级PF4J-Spring(支持热插拔)和企业级Spring-Boot-Plugin-Framework(可视化运维)。方案对比了加载时机、热插拔、类隔离等特性,并提供了具体实现代码和运维命令。针对不同团队规模,给出了从10分钟快速落地到企业级解决方案的技术选型建议,重点解决了业务频繁变更场景下的动态扩展需求,同时提供了类隔离、灰度发布等最佳实践。
2025-07-19 16:05:13
540
原创 Jackson在Spring Boot中的开发技巧详解
本文详细介绍了 Jackson 在 Spring Boot 中的开发技巧,包括基础配置、常用注解和自定义序列化方法。主要内容涵盖:1)全局配置方法,如日期格式化和 Long 型转字符串;2)5个核心注解(@JsonProperty、@JsonIgnore、@JsonFormat、@JsonInclude、@JsonCreator/@JsonValue)的使用场景与示例;3)自定义序列化器和反序列化器的实现方式。文章通过典型代码示例和运行效果演示,帮助开发者快速掌握 Jackson 的关键功能,提升 JSON
2025-07-18 08:52:50
334
原创 Jackson在Spring Boot中的开发技巧详解
摘要:Jackson 是 Spring Boot 默认的 JSON 处理库,本文详解其开发技巧,包括基础配置(日期格式化、Long转字符串)、常用注解(@JsonProperty、@JsonIgnore等)的用法与示例,以及自定义序列化/反序列化方法。通过合理运用这些技巧,开发者能高效处理JSON转换,确保系统稳定性和数据准确性。
2025-07-15 09:04:40
577
计算机启动过程详解 计算机启动过程详解
2010-08-10
指令流水线练习题目 指令流水线练习题目
2010-03-07
window 内核编程与信息安全
2010-05-14
TreeView控件使用的例子
2010-03-15
domino8.5中如何启动DB2Access服务技术文档
2010-07-25
vbAPI Document Help and development
2009-12-05
虚拟机安装、创建与虚拟机接入局域网的方案
2010-09-05
基于Springboot 版本 2.3.2.RELEASE版本开发的Example
2024-01-08
jquery-autocomplete文档
2012-02-08
JAVA认证与授权 JAVA认证与授权
2011-08-15
sqlserver2005/sqlserver2008 jdbc驱动
2011-08-09
动态配置ODBC数据源代码
2011-06-28
微信应用开发教程JAVA版
2014-07-03
domino8帮助文档中文版
2010-08-14
icepdf-4.2.0.jar
2013-07-07
JavaGC专家指南.pdf
2020-02-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅