- 博客(426)
- 收藏
- 关注
原创 在 IntelliJ IDEA 中修改 Git 远程仓库地址
本文全面解析了在 IntelliJ IDEA 中修改 Git 远程仓库地址的多种策略,包括图形界面操作、命令行指令应用、常见问题应对及批量处理技巧,旨在为开发者提供详尽的操作指南和实用建议。无论是初学者还是有经验的开发者,都能依据此指南高效地完成 Git 远程仓库地址的修改与管理。
2025-05-20 09:30:00
791
原创 解决Spring Boot 组件扫描未覆盖导致 Bean 注册失败问题
在 Spring Boot 项目中,Bean 注册失败是常见问题,通常表现为 Spring 容器无法找到特定类型的 Bean,导致依赖注入失败。主要原因在于 Spring Boot 的默认组件扫描范围仅限于主类所在包及其子包,若目标类位于其他包中,则无法被扫描到。针对这一问题,有几种解决方案:1. 使用 @ComponentScan 显式扩展扫描范围;2. 通过 @Import 手动导入单个类;3. 在配置类中使用 @Bean 手动注册;4. 使用 @ComponentScan 的 basePackageC
2025-05-20 09:15:00
473
原创 Java 日志记录性能优化
在Java开发中,日志记录是系统调试和监控的重要工具,但其性能问题常被忽视,尤其是在高并发场景下。传统日志记录中的字符串拼接操作会无条件执行,导致性能浪费,而参数化日志通过延迟计算和条件执行,避免了这一问题。参数化日志不仅减少了字符串拼接的开销,还提高了代码的可读性和性能。最佳实践包括使用占位符、避免嵌套复杂逻辑、异步日志记录以及动态调整日志级别。此外,统一的日志格式和包含关键上下文信息有助于快速定位问题。通过优化日志记录机制,可以有效提升系统的性能和可维护性。
2025-05-20 09:15:00
698
原创 解决 @NotBlank 校验 Integer 类型时的 UnexpectedTypeException 异常
在 Java 企业级开发中,数据校验是确保业务逻辑正确性和系统健壮性的关键。Bean Validation(JSR 380)通过注解驱动的校验机制,提供了统一的数据合法性校验能力。然而,随着业务复杂化,开发者常因对注解适用范围的误解而陷入陷阱。例如,对 Integer 类型字段使用 @NotBlank 注解会抛出 UnexpectedTypeException,因为 @NotBlank 仅适用于 String 类型。正确的做法是使用 @NotNull 注解,并结合其他注解如 @Min 和 @Max 进行扩展
2025-05-16 09:30:00
371
原创 IntelliJ IDEA 代码缩进与 Tab 设置
在软件开发中,代码风格的统一性对团队协作和代码可读性至关重要。IntelliJ IDEA 提供了灵活的 Tabs and Indents 设置,允许开发者根据团队规范或个人偏好自定义缩进行为。设置分为全局和项目级,可通过 .editorconfig 文件或项目目录下的 .idea/codeStyleSettings.xml 进行配置。核心设置包括 Use tab character(推荐使用空格)、Tab size(通常为 4)、Indent(与 Tab size 一致)等。此外,Smart tabs 和
2025-05-16 09:15:00
1531
原创 Spring Boot 中 @Valid 与 @Validated 的解析
在 Spring Boot 中,@Valid 用于集合元素递归校验,而 @Validated 支持分组校验与方法级校验,两者结合可实现高效参数验证。
2025-05-15 09:15:00
628
原创 Windows系统上通过Ollama本地部署DeepSeek模型(2025年最新版)
本文详细介绍了如何在Windows 10/11系统上通过Ollama工具安装并运行DeepSeek R1模型。首先,用户需要下载并安装Ollama,验证安装成功后,选择合适的DeepSeek模型版本进行下载。下载完成后,用户可以通过命令行或API与模型进行交互。此外,文章还提供了更改模型存储路径、安装图形化界面以及解决常见问题的建议。通过本文的指导,用户可以在本地快速部署DeepSeek模型,实现离线使用,并根据需求扩展功能。
2025-05-15 09:00:00
2102
原创 解决MyBatis-Plus 乐观锁失效问题
在高并发场景下,MyBatis-Plus 通过 @Version 注解和 OptimisticLockerInnerInterceptor 插件提供了乐观锁机制,确保数据一致性。然而,开发者常遇到乐观锁失效的问题,主要原因包括插件未正确配置、实体类未标注 @Version、数据库字段未初始化、更新操作未基于查询后的数据、自定义 SQL 未包含版本号条件、事务未正确开启、并发测试未触发冲突、版本字段类型不匹配以及 MyBatis-Plus 版本过低等。为解决这些问题,开发者需确保正确配置插件、标注版本号字段、
2025-05-09 09:00:00
845
原创 # **解决 Spring Boot 文件上传 MultipartFile 报错 `java.io.UncheckedIOException: Cannot delete C:\Users\XXX`*
在 Spring Boot 开发中,文件上传功能是常见的需求。若在异步任务中处理文件上传,临时文件可能在主线程结束后被框架删除,导致异步任务无法访问文件。接口抽象文件上传操作。上传的文件默认存储在操作系统的临时目录中(如 Windows 的。若在异步任务中处理文件上传,临时文件可能在主线程结束后被框架删除,导致。返回的输入流若未显式关闭,底层文件句柄会被占用,导致文件无法删除。,延迟或禁用临时文件的自动清理,确保业务逻辑完成后再手动删除文件。默认临时目录权限不足或路径不固定,可能导致文件清理失败。
2025-05-08 10:00:00
1389
原创 解决“Required request body is missing”错误
是开发者常遇到的典型错误。该问题通常表明客户端未正确发送请求体(request body),或服务器端未能正确解析请求体数据。在前后端联调过程中,“
2025-05-08 09:15:00
1024
原创 Spring MVC请求处理核心
doDispatch() 是 Spring MVC 的灵魂,其设计体现了 责任链模式 和 策略模式 的精髓。通过理解其执行流程,开发者不仅能编写出更高效的代码,还能在遇到性能瓶颈时快速定位问题。随着 Spring 6 和 Spring Boot 3 的推出,异步处理、响应式编程等特性将进一步优化请求处理流程。未来,结合 AI 驱动的代码生成工具(如 GitHub Copilot),开发者可以更专注于业务逻辑的设计,而将底层的框架交互交给智能工具。
2025-05-08 09:00:00
663
原创 Spring Boot 配置管理
Spring Boot 以其“约定优于配置”的理念,极大地简化了基于 Spring 的应用开发。配置管理是 Spring Boot 的核心能力之一,它通过自动化机制和灵活的配置方式,让开发者能够高效地管理应用程序的参数、环境差异和外部依赖。结合 JSR 380(Bean Validation)对配置项进行校验。Spring Boot 的配置管理机制通过自动化与灵活性的结合,极大提升了开发效率。掌握、Profile 管理、加密配置等技巧,不仅能减少重复劳动,还能提升系统的可维护性和安全性。
2025-05-02 10:00:00
954
原创 记一次前后端联调时接口参数后端没有接收到的问题解决思路以及方案
是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
920
原创 解决Java 中 `NoClassDefFoundError` 异常
在 Java 开发中,是运行时异常中最常见的问题之一。它通常出现在程序编译成功后,却在运行时因JVM 无法找到某个类的定义而抛出。这种错误的核心特征是“编译时存在,运行时缺失”,背后可能涉及依赖管理、类路径配置、构建工具链或 JVM 类加载机制的复杂交互。什么是?当 JVM 在运行时尝试加载某个类,但无法找到其定义时抛出此错误。区别于,后者是显式加载类时(如)触发的异常,而前者是隐式调用(如访问静态字段或方法)导致的。覆盖loadClass。
2025-05-01 05:00:00
1040
原创 Spring Boot 中 `@EnableConfigurationProperties` 注解
@EnableConfigurationProperties 是 Spring Boot 实现外部化配置的核心注解,通过与 @ConfigurationProperties 配合,能够高效地将配置文件中的属性绑定到 Java 对象,提升代码的可维护性和解耦性。其核心价值在于简化配置管理,避免硬编码,同时支持灵活的多环境配置策略。
2025-04-30 09:30:00
673
原创 解决报错:Incorrect integer value: ‘O01‘ for column ‘XXX‘ at row 1
在数据库开发中,数据类型不匹配是一个常见但容易被忽视的问题。无论是初学者还是经验丰富的开发者,都可能因未严格校验数据类型而导致 SQL 语句执行失败,甚至引发严重的业务逻辑错误。数据类型不匹配看似简单,实则是数据库设计与开发流程中的关键环节。通过严格的字段定义、合理的数据清洗逻辑以及完善的异常处理机制,可以有效规避此类问题。对于复杂场景(如混合数据存储),还需结合业务需求灵活调整设计方案。记住:数据库的健壮性始于细节的设计,成于持续的维护。
2025-04-30 06:45:00
1445
原创 数据库主键设计
在现代分布式系统中,唯一标识符(Unique ID)的设计是核心挑战之一。雪花ID(Snowflake ID)因其时间有序性、全局唯一性和高并发支持,已成为主流方案。主键字段类型BIGINT还是VARCHAR?前后端数据交互:如何避免JavaScript处理64位大整数时的精度丢失问题?优先使用:节省空间,提升索引效率。避免混合类型:同一表中主键字段统一为BIGINT,避免隐式转换。从数据库主键设计到前后端数据交互,每一个细节都关乎系统的稳定性与性能。通过合理选择BIGINT。
2025-04-30 06:15:00
1004
原创 解决Spring Boot多模块自动配置失效问题
在Spring Boot多模块项目中,模块间配置不生效是一个复杂但可解决的问题,尤其涉及自动配置类、依赖冲突、条件注解以及IDE配置。
2025-04-25 16:15:00
1566
原创 【Java基础】Java中的 LinkedList
LinkedList是Java集合框架中基于双向链表(Doubly Linked List)实现的动态数据结构,实现了ListDequeQueue等核心接口。它允许存储有序、可重复的元素,并通过灵活的指针操作实现高效增删,但随机访问效率较低。其核心优势在于动态结构和高效的插入/删除操作,适用于需要频繁修改数据的场景。适用场景:频繁增删(尤其是头尾操作)、队列/栈、LRU缓存。避免场景:大量随机访问、内存敏感的场景。核心优势:动态结构、高效增删。
2025-04-23 15:30:00
517
原创 【Java基础】Java 的ArrayList集合
ArrayList是基于的List实现类,其底层数据结构是 Object[] elementData。它通过动态扩容机制(自动扩展数组长度)实现灵活的存储需求,但牺牲了线程安全性。ArrayListListVectorArrayList的底层基于。
2025-04-23 11:00:00
879
原创 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
996
原创 解决Spring Boot版本冲突导致的`NoSuchFieldError`
统一版本:通过父模块管理依赖版本。排除污染:显式排除第三方库的冲突依赖。工具辅助:使用Maven Helper或排查冲突。迁移适配:若升级到Spring Boot 3.x,需处理包名、JDK版本及第三方库兼容性。
2025-04-23 09:30:00
1053
原创 IntelliJ IDEA 新版本中 Maven 子模块不显示的解决方案
中,父模块和子模块均能正常显示。经过深入排查,发现这一问题并非仅限于 2024 版本,而是。对 Maven 配置规范性要求提升导致的典型场景。,仅显示父模块名称(且无。
2025-04-22 20:39:50
1004
原创 MyBatis-Plus 逻辑删除字段插入时未生效的解决方案
在使用 MyBatis-Plus 的逻辑删除功能时,开发者常遇到插入数据时逻辑删除字段(如 deleted)未生效的问题。本文将详细解析该问题的成因、解决方案及最佳实践,结合代码示例与配置说明,帮助开发者彻底解决这一常见问题,并理解 MyBatis-Plus 逻辑删除的底层机制
2025-04-22 09:45:00
894
原创 Spring、Spring Boot、Spring MVC
通过合理选择Spring Framework、Spring MVC与Spring Boot,开发者既能享受基础框架的灵活性,又能借助Spring Boot的高效开发能力,快速构建从单体到微服务的多样化应用。在Java生态中,Spring家族是企业级开发的基石,其核心框架Spring Framework、Web框架Spring MVC以及简化开发的Spring Boot,共同构建了从基础架构到现代化应用的完整技术栈。:基于Spring Framework的“开箱即用”框架,简化开发与部署。
2025-04-22 09:30:00
945
原创 Java布尔类型字段为何不能以`is`开头?
看似是一个微不足道的细节,却可能引发序列化冲突、框架兼容性问题甚至代码逻辑错误。,导致反序列化时数据丢失!字段在JSON中变成了。
2025-04-22 09:30:00
802
原创 Spring Boot 的依赖冲突
在 Spring Boot 项目中,依赖冲突是开发者常遇到的棘手问题。无论是不同版本的 spring-boot-starter 模块冲突,还是第三方库与框架的版本不兼容,都可能导致程序启动失败或功能异常。
2025-04-22 09:30:00
966
原创 Spring事件驱动机制
在现代企业级应用开发中,组件之间的解耦与协作是系统设计的核心目标之一。Spring框架提供的事件驱动机制(Event-Driven Mechanism)完美契合这一需求,通过观察者模式实现组件间通信,提升系统的可维护性和扩展性。Spring的事件驱动机制基于观察者模式事件(Event):继承自的类,封装事件数据。监听器(Listener):通过接口或注解定义,响应特定事件。发布者(Publisher):通过接口发布事件,通常由实现。事件类需继承。
2025-04-22 09:30:00
882
原创 Logback 日志框架
Logback 作为 Spring Boot 的默认日志框架,提供了高性能、灵活的日志解决方案。(Log4j 作者)设计的高性能日志框架,专为 Java 应用提供高效、灵活的日志解决方案。Spring Boot 默认通过。结构化日志以 JSON 格式记录日志,便于后续分析。依赖集成 Logback,支持开箱即用的日志功能。
2025-04-21 09:30:00
1806
1
原创 Java中如何获取文件后缀名
在Java开发中,尤其是Web应用或文件处理场景中,获取文件后缀名是一个高频需求。无论是文件上传验证、类型过滤、格式校验,还是日志记录,后缀名的正确提取都是核心基础。:使用 Apache Commons IO 的工具类。:通过 Lombok 减少资源管理代码。:使用 Spring 的工具类。分割文件名,取最后一个元素。:通过枚举限定允许的后缀。:通过正则匹配最后一个。的位置,截取后缀名。
2025-04-21 09:30:00
1962
原创 Spring中的 MultipartFile
MulitpartFile 接口时Spring框架提供的一个用于处理文件上传的工具, 在SpringMVC和SpringBoot中, 它允许用户将文件作为请求的一部分上传
2025-04-21 09:30:00
556
原创 【Java基础】Java集合遍历方式
在Java编程中,集合(Collection)是存储和操作对象的核心工具。遍历集合是开发者最频繁的操作之一,但不同场景下选择合适的遍历方式至关重要。Java集合遍历方式的选择需结合具体场景,从可读性安全性性能等维度综合评估。掌握每种方法的核心特性,能显著提升代码质量和开发效率。无论是基础循环还是函数式编程,理解其底层原理(如迭代器机制、流处理)是进阶的关键。延伸阅读Fail-Fast机制与的深层原理。Stream的惰性求值与中间操作/终端操作的区别。
2025-04-16 21:55:09
1007
原创 JAR包与WAR包的区别
全称:Java Archive(Java归档文件)。本质:一种基于ZIP格式的压缩文件,用于打包Java类文件(.class)、资源文件(如图片、配置文件)、元数据(如)等。历史背景:由Sun Microsystems(现Oracle)提出,最初用于简化Java类文件的分发和管理。全称:Web Application Archive(Web应用归档文件)。本质:基于JAR的扩展格式,专为Web应用设计,包含Servlet、JSP、HTML、CSS、JavaScript等资源。规范。
2025-04-15 09:30:00
1552
原创 Hutool工具包中`copyProperties`和`toBean`的区别
Hutool是一个Java工具包,它封装了许多常用的工具类和方法,旨在简化Java开发过程中的常见操作。其中,BeanUtil工具类提供了一系列用于对象转换和属性复制的方法,和toBean就是其中的两个重要方法。方法的主要功能是将一个对象的属性值复制到另一个对象中。它会遍历源对象的所有属性,并将其值赋给目标对象中具有相同名称的属性。toBean方法用于将一个Map或者其他类型的对象转换为Java Bean对象。它会根据Map中的键值对,将其映射到Java Bean对象的属性上。
2025-04-14 22:11:42
911
原创 Maven 依赖管理 dependencyManagement
值作用适用场景compile默认作用域,依赖在编译、测试、运行时都可用。业务核心依赖(如provided由运行环境提供(如 JDK API),编译时需要但运行时不需要。Servlet API、JDBC 驱动。runtime运行时依赖(如数据库驱动),编译时不需,但运行时需要。。test仅用于测试代码,编译主代码时不可见。system需要手动指定路径的依赖(需配合本地特殊依赖(如未发布到仓库的 JAR)。
2025-04-11 09:30:00
1333
原创 IntelliJ IDEA 的 `.iml` 文件
在使用 IntelliJ IDEA 进行 Java 或 Kotlin 开发时,.iml文件是一个频繁被提及但容易被误解的配置文件。它不仅是 IDEA 项目的核心配置文件,更是模块化开发的关键。.iml文件是IntelliJ IDEA 的模块配置文件(Module Configuration File),其全称为文件。每个模块(Module)对应一个.iml模块名称:模块的唯一标识。源代码路径:Java/Kotlin 源代码、资源文件的目录位置。依赖项管理。
2025-04-11 09:30:00
1188
原创 Spring Boot项目.gitignore没生效的解决方案
在Windows环境下使用IntelliJ IDEA开发Spring Boot项目时,.gitignore失效的常见原因包括隐藏文件未显示、路径分隔符错误、IDE缓存干扰、换行符差异等。物理检查:通过资源管理器或IDEA确认.gitignore存在且内容正确。状态管理:移除已跟踪的文件,确保规则优先级正确。环境适配:处理Windows特有的路径、换行符问题。IDE工具:利用IDEA的Git工具窗口和设置优化忽略规则。
2025-04-11 09:30:00
883
原创 解决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
1693
原创 JetBrains插件市场(附官网地址)
JetBrains插件市场(是JetBrains官方提供的插件聚合平台,提供超过10,000+款插件,涵盖代码辅助、调试工具、框架集成、语言支持、AI辅助等场景。无论是提升开发效率的小工具,还是处理复杂任务的专业插件,这里都能找到。
2025-04-05 10:30:00
1266
原创 记一次Maven 打包类型引发的配置文件未读取问题以及解决方案思路
确认语法正确且数据库连接参数无误,但问题始终无法解决。今天在开发一个 Spring Boot 项目时,我尝试使用。尽管反复检查配置文件。
2025-04-05 03:30:00
817
PDManer导出word模版
2025-03-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人