- 博客(20)
- 收藏
- 关注
原创 【保姆级教程】如何给自己的java项目继承googleDrive接口(包含原始文档及个人踩坑)
本文介绍了Java后端开发Google Drive文件操作服务类GoogleFileServiceImpl的关键要点。主要内容包括: Google Drive API的RESTful接口、资源管理及OAuth2.0鉴权机制; 从main函数出发的快速入门流程,涉及SDK配置、凭证获取和API调用; 文件下载功能的实现思路; 前后端分离场景下授权流程的协作方案。文章提供了详细的代码示例和技术细节,帮助开发者快速集成Google Drive功能。
2025-07-24 19:55:02
789
原创 MyBatis Plus模糊查询的那些“坑“与填坑指南
最近在Code Review时发现一个有趣的Bug:使用MyBatis Plus的LambdaQueryWrapper进行模糊查询时,输入"1_7_7"竟然匹配到了"model_6951_757"这样的结果。这让我想起刚学习时被SQL通配符支配的恐惧,今天来聊聊MyBatis Plus模糊查询的那些坑,以及如何优雅地填坑。
2025-07-17 11:30:36
284
原创 # 基于Spring Boot实现的Quartz分布式任务调度系统
Quartz是一个功能丰富的开源任务调度库,支持灵活的调度方式和持久化存储。Job: 定义要执行的任务Trigger: 控制任务执行的时间和频率Scheduler: 负责调度和管理任务。
2025-07-14 18:15:53
233
原创 我喜欢的基于SpringBoot的责任链模式实现
基于SpringBoot的责任链模式为复杂业务流程提供了优雅解决方案。这种设计特别适合多步骤业务流程、可插拔功能模块和分级处理机制等场景。通过责任链模式,我们能用清晰、模块化的方式表达复杂业务流程,同时保持系统的可维护性和可扩展性。
2025-07-14 17:47:14
297
原创 我喜欢的基于MybaticPlus分页查询代码风格
这样可以直接用getRecords获取当前页数据,实现了分页查询,同时也用getTotal获取了总数。2.用Page<T> implements IPage<T>接收分页条件;1.查询条件用LambdaQueryWrapper收集,可以用。selectPage实现查询。
2025-07-01 10:31:49
92
原创 Spring Boot枚举类型空字符串反序列化问题
当Jackson(Spring Boot默认的JSON处理库)尝试将前端传来的空字符串("")转换为枚举类型时,由于空字符串不匹配任何已定义的枚举常量,Jackson抛出了InvalidFormatException异常。该反序列化器的核心逻辑是:当遇到空字符串时返回null,而不是尝试查找对应的枚举值。这样当查询条件中的status为null时,相应的查询条件不会被添加到SQL查询中,从而实现查询所有状态的数据。这个问题可以前端处理,也可以后端处理,方法:自定义枚举反序列化器。
2025-06-12 18:48:39
268
原创 多模块项目中使用不同 JDK 版本的实用指南
:让不同模块在 IDE 中正确识别 JDK 版本,避免代码提示或运行错误。 的完整解决方案,并涵盖常见问题的应对策略。使用正确的 JDK 版本构建每个模块。
2025-06-09 18:10:30
583
原创 wrapper详解
QueryWrapper(T entity, String... columns),创建Wrapper并立即指定查询字段。QueryWrapper(T entity),根据实体对象创建Wrapper,自动将实体非null字段转为。QueryWrapper(Class<T> entityClass),仅设置实体类类型,不自动添加条件,QueryWrapper(),无参构造,创建空条件的Wrapper。sqlSelect 存储SELECT查询的字段列表。,MyBatis-Plus 会自动将。
2025-05-23 10:52:16
328
原创 Git Rebase 详解:让提交历史更清晰
在多人协作的 Git 项目中,分支合并是常见操作。git merge和git rebase都能整合代码,但rebase能让提交历史更整洁,避免杂乱的合并记录。本文将介绍rebase的基本用法、适用场景及注意事项。
2025-05-23 10:05:27
463
原创 Quartz 持久化实现详解
项目通过 `QuartzJobFactory` 实现了与 Spring 的集成:它的主要作用是解决 Quartz 任务类中无法直接使用 Spring 依赖注入的问题。任务需要实现 `Job` 接口,并在 `execute` 方法中实现具体的业务逻辑。- `qrtz_job_details`: 存储作业的详细信息,包括作业名称、组、类名等。- `qrtz_paused_trigger_grps`: 记录暂停的触发器组。- `qrtz_simprop_triggers`: 存储带属性的触发器。
2025-05-19 18:52:12
607
原创 Java枚举类型常用方法:valueOf()、values()、name()
在Java开发中,枚举(enum)类型是我们经常使用的特性之一。除了基本的枚举常量定义外,Java枚举还提供了许多实用的内置方法。本文将重点介绍valueOf()方法,并延伸讲解几个其他常用的枚举方法,帮助开发者更好地利用枚举类型。
2025-05-19 18:16:21
597
原创 Maven Assembly Plugin:Springboot打包
Maven Assembly Plugin是Maven生态中用于构建项目分发包的核心插件,它能够将项目输出、依赖项、文档等资源按照自定义规则打包成多种格式的归档文件(如ZIP、TAR、JAR等)。该插件名称中的"assembly"意为"装配",形象地描述了其将项目各组成部分组装成完整分发包的功能。Maven Assembly Plugin提供了强大的打包能力,通过灵活的配置可以满足各种复杂的打包需求。相比默认的maven-jar-plugin,它支持更丰富的打包格式和更精细的资源控制;
2025-05-19 18:08:44
1160
原创 SpringBoot资源过滤 文件下载接口
:二进制文件(如Excel、图片)必须关闭过滤,否则会导致文件损坏!等)进行动态内容替换的关键机制。目录下的所有文件,以下是实现步骤和关键类解析。在SpringBoot项目中,。 是构建过程中对资源文件(如。实现更灵活的文件下载控制。类操作JAR内虚拟路径。假设需要提供接口下载。
2025-05-19 17:57:54
417
原创 数据库迁移与一键替换:DBeaver与IDEA高效操作指南
在数据库迁移或重构过程中,开发者常需批量导出表结构(DDL)并在代码中快速替换旧表名或字段名。传统手动操作效率低下且易出错,而借助 和 的快捷键组合,可大幅提升效率。本文基于实际项目经验,详细介绍如何通过CTRL+多选导出DDL,以及利用CTRL+R实现代码全局替换。
2025-05-19 17:40:02
448
原创 DTO转换的深坑:为什么你的BeanCopier总是丢失嵌套对象数据?
:虽然productName被正确复制,但brandName和categoryPath却神秘消失。更糟糕的是,这种错误通常不会立即抛出异常,而是在后续业务逻辑中引发NullPointerException,给线上问题排查带来巨大困难。在现代分布式系统开发中,我们常常会遇到这样的场景:前端传递的查询参数需要转换为数据库实体对象。随着业务复杂度的提升,这种对象转换逐渐演变成一个隐藏的"数据黑洞"。
2025-05-08 14:44:39
228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人