
Java技巧
文章平均质量分 91
用来记录发布平常开发过程中所涉及有关Java的技巧、知识点等等
李少兄
此人不懒,但还是什么东西都没写
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
@DateTimeFormat.fallbackPatterns 详解
Spring Framework 4.3+新增的@DateTimeFormat注解属性fallbackPatterns,可在主格式解析失败时尝试备用格式,解决前后端时间格式不一致问题。通过定义多个备用格式,如{"yyyy-MM-dd","yyyy-MM-dd HH:mm"},可智能兼容不同输入。该属性仅对非JSON请求生效,建议将高频格式前置以优化性能,并避免与JSON场景混用。企业实践中推荐使用常量定义格式,避免硬编码。原创 2025-09-11 23:40:20 · 1239 阅读 · 0 评论 -
Java枚举类的规范设计与常见错误规避
本文系统总结了Java枚举(enum)的常见使用误区和最佳实践。首先解析枚举的本质是特殊类,强调其类型安全、不可变等特性。随后针对非法命名、非final字段、错误比较、序列化问题等典型错误,提供具体修复方案。进一步探讨枚举高级用法,如抽象方法实现、策略模式应用和国际化支持。最后从版本控制角度,提出避免删除枚举常量、正确处理switch兼容性等维护建议,并总结规范的枚举设计要点,帮助开发者规避生产风险,提升代码质量。原创 2025-06-22 18:48:22 · 579 阅读 · 0 评论 -
Java 枚举深度解析
Java枚举是一种语法糖,本质上是final类继承Enum,具有不可变性、类型安全和继承限制等特性。枚举编译后生成静态常量,支持字段、方法及接口实现,常用于状态机、错误码等场景。最佳实践包括大写命名、避免硬编码和异常处理。枚举在类加载时初始化,可通过反编译观察底层结构,调试需注意ordinal()依赖序数而非代码逻辑。原创 2025-06-12 09:00:00 · 714 阅读 · 0 评论 -
Java 枚举写法(模版)
Java枚举类设计实践:以性别枚举为例 本文通过性别枚举示例,展示了Java枚举类的规范设计。枚举类包含code和desc字段,使用Lombok简化代码,添加详细注释。扩展了4个实用方法:通过编码获取描述、获取枚举实例、校验编码合法性以及生成编码-描述映射。文章还介绍了JSON序列化技巧和避免硬编码的方法。完整代码示例提供了可直接使用的枚举模板,这些设计模式能有效提升代码的可读性、维护性和安全性,适用于各种枚举场景开发。原创 2025-06-12 09:15:00 · 516 阅读 · 0 评论 -
Spring Framework 中 UriComponentsBuilder工具类
Spring Framework中的UriComponentsBuilder是一个用于构建和操作URI的工具类,支持动态拼接路径参数、查询参数,并自动处理编码问题。它通过链式调用方式构建URI组件(协议、主机、路径等),避免手动拼接字符串的安全风险。核心功能包括多种创建方式(如fromUriString、fromPath)、路径操作(path/replacePath)、查询参数管理(queryParam/replaceQueryParam)以及片段添加。适用于构建RESTful API请求、动态URL生成等原创 2025-06-04 23:04:45 · 1538 阅读 · 0 评论 -
Java 日志记录性能优化
在Java开发中,日志记录是系统调试和监控的重要工具,但其性能问题常被忽视,尤其是在高并发场景下。传统日志记录中的字符串拼接操作会无条件执行,导致性能浪费,而参数化日志通过延迟计算和条件执行,避免了这一问题。参数化日志不仅减少了字符串拼接的开销,还提高了代码的可读性和性能。最佳实践包括使用占位符、避免嵌套复杂逻辑、异步日志记录以及动态调整日志级别。此外,统一的日志格式和包含关键上下文信息有助于快速定位问题。通过优化日志记录机制,可以有效提升系统的性能和可维护性。原创 2025-05-20 09:15:00 · 1054 阅读 · 0 评论 -
Spring Boot 中 @Valid 与 @Validated 的解析
在 Spring Boot 中,@Valid 用于集合元素递归校验,而 @Validated 支持分组校验与方法级校验,两者结合可实现高效参数验证。原创 2025-05-15 09:15:00 · 795 阅读 · 0 评论 -
记一次前后端联调时接口参数后端没有接收到的问题解决思路以及方案
是Spring MVC中的注解,用于将HTTP请求正文(Body)中的内容绑定到控制器方法的参数上。它支持JSON、XML等多种格式的数据转换。@Data是Lombok库提供的组合注解,用于简化POJO(Plain Old Java Object)的开发。getter和settertoString()equals()和hashCode()构造函数(根据需求生成)本次问题的根本原因在于对注解的底层机制理解不足,以及忽略了Lombok注解在POJO类中的关键作用。依赖目标类的可变性:必须存在setter。原创 2025-05-01 05:15:00 · 1367 阅读 · 0 评论 -
解决Spring Boot多模块自动配置失效问题
在Spring Boot多模块项目中,模块间配置不生效是一个复杂但可解决的问题,尤其涉及自动配置类、依赖冲突、条件注解以及IDE配置。原创 2025-04-25 16:15:00 · 2266 阅读 · 3 评论 -
Spring Boot 依赖管理: `spring-boot-starter-parent` 与 `spring-boot-dependencies`
在 Spring Boot 的开发实践中,依赖管理是构建高质量应用的基础。和是 Spring Boot 提供的两大核心依赖管理工具,它们在简化依赖版本控制、统一配置等方面发挥着关键作用。-- 自定义依赖版本 --> </ dependencyManagement > </ project >-- 自定义依赖版本 --> </ dependencyManagement > </ project >-- 自定义依赖版本 --> </ dependencyManagement > </ project >原创 2025-04-23 10:00:00 · 1467 阅读 · 0 评论 -
Java布尔类型字段为何不能以`is`开头?
看似是一个微不足道的细节,却可能引发序列化冲突、框架兼容性问题甚至代码逻辑错误。,导致反序列化时数据丢失!字段在JSON中变成了。原创 2025-04-22 09:30:00 · 1218 阅读 · 0 评论 -
MyBatis-Plus 逻辑删除字段插入时未生效的解决方案
在使用 MyBatis-Plus 的逻辑删除功能时,开发者常遇到插入数据时逻辑删除字段(如 deleted)未生效的问题。本文将详细解析该问题的成因、解决方案及最佳实践,结合代码示例与配置说明,帮助开发者彻底解决这一常见问题,并理解 MyBatis-Plus 逻辑删除的底层机制原创 2025-04-22 09:45:00 · 1429 阅读 · 0 评论 -
Java中如何获取文件后缀名
在Java开发中,尤其是Web应用或文件处理场景中,获取文件后缀名是一个高频需求。无论是文件上传验证、类型过滤、格式校验,还是日志记录,后缀名的正确提取都是核心基础。:使用 Apache Commons IO 的工具类。:通过 Lombok 减少资源管理代码。:使用 Spring 的工具类。分割文件名,取最后一个元素。:通过枚举限定允许的后缀。:通过正则匹配最后一个。的位置,截取后缀名。原创 2025-04-21 09:30:00 · 3304 阅读 · 0 评论 -
解决Spring Boot启动时YAML配置占位符导致的ScannerException(yml占位符动态替换)
在Spring Boot项目中,YAML配置文件常使用占位符(如)实现动态配置。然而,若未正确配置Maven资源过滤机制,占位符可能未被替换,导致。5.1 核心知识点回顾Maven资源过滤:通过配置动态替换占位符。YAML语法规范:避免使用符号,严格遵循缩进与格式。环境配置管理:通过<profiles>实现多环境属性切换。5.2 知识点延伸进阶配置使用<excludes>排除特定文件。通过<filter>指定额外的过滤属性文件。工具辅助使用IDEA的Maven插件实时检查资源过滤配置。原创 2025-04-06 09:30:00 · 2345 阅读 · 0 评论 -
解决Spring参数解析异常:Name for argument of type XXX not specified
在开发 Spring Boot 应用时,我们常遇到类似的报错。这类问题通常与方法参数名称的解析机制相关,尤其在使用等注解时更为常见。参数名称丢失的根本原因:Java 编译器默认不保留参数名称,需通过标志显式启用。解决方案分层:从编译配置到显式注解,分步骤解决参数解析问题。最佳实践:结合和 DTO 设计,提升代码可维护性。原创 2025-04-03 21:42:22 · 2105 阅读 · 0 评论