001 - 基础开发能力
文章平均质量分 66
本专栏聚焦 Java 生态核心技术与企业级开发体系,涵盖三大知识模块,助力开发者构建从基础到架构的完整技术栈:专栏特色:理论结合实战,通过代码示例与场景化案例解析技术原理,兼顾基础夯实与架构思维培养,适合 Java 开发工程师从初级到中高级的能力进阶。
本本本添哥
奶爸的编程之路,也就一周冷个三天~
专门分享AI大模型/Java微服务/计算机软考/项目管理/个人成长/思维框架/效能工具等相关内容
欢迎关注我的公众号:本本本添哥
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【异常】SpringMVC提示异常Required request parameter ‘xxx‘ for method parameter type xxxx is not present
SpringMVC 注解@RequestBody与@RequestParam的比较springMVC的注解@RequestParam与@RequestBody原创 2022-11-03 14:38:31 · 5814 阅读 · 0 评论
-
【异常】原来提示SocketTimeoutException:connect timed out还可能是外部因素导致
原来提示SocketTimeoutException:connect timed out还可能是外部因素导致原创 2023-01-12 21:18:35 · 10580 阅读 · 0 评论
-
【异常】has been compiled by a more recent version of the Java Runtime (class file version 55.0)
摘要 项目运行时出现UnsupportedClassVersionError错误,原因是使用Java 11编译的代码尝试在Java 8环境下运行(版本不兼容)。解决方案为:1. 将jar包移至Java 11安装目录;2. 使用JDK 11运行程序,问题解决。该问题涉及JDK版本匹配,需确保编译与运行环境一致。原创 2022-12-30 10:46:57 · 56443 阅读 · 0 评论
-
【异常】IDEA启动之后,提示java.lang.ClassNotFoundException(错误: 找不到或无法加载主类 )
【异常】IDEA启动之后,提示java.lang.ClassNotFoundException(找不到或无法加载主类)原创 2023-01-07 08:16:26 · 8718 阅读 · 1 评论
-
【异常】SpringSecurity登录失败:Full authentication is required to access this resource
【项目】SpringSecurity登录失败:Full authentication is required to access this resource原创 2023-01-07 06:55:06 · 7821 阅读 · 1 评论
-
【异常】Java Servlet API 类缺失问题排查与解决 (ClassNotFoundException: javax.servlet.http.HttpServletRequest)
摘要:系统报错显示ClassNotFoundException: javax.servlet.http.HttpServletRequest,表明类加载器无法找到Servlet API核心接口。该问题通常由于缺少依赖或配置错误导致,常见于Web项目中未引入spring-boot-starter-web或Servlet API依赖。解决方案包括在POM文件中添加Jakarta Servlet API依赖(版本6.0.0,scope为provided),并检查项目引用配置。报错涉及Spring MVC核心组件,原创 2025-11-13 09:38:49 · 33 阅读 · 0 评论 -
【异常】Yaml key字段重复,导致DuplicateKeyException: while constructing a mapping in ‘reader‘, line 1, column
摘要:YAML配置文件出现重复的spring顶级键导致应用启动失败。错误提示found duplicate key spring表明配置文件中存在多个spring:定义。解决方法包括:1) 定位重复键位置;2) 将两个spring块下的子配置合并到同一键下;3) 删除重复定义后重启应用。此问题源于YAML不允许映射中存在重复键的特性。原创 2025-11-06 09:03:13 · 546 阅读 · 0 评论 -
【异常】在 JDK 17 中出现 `无法解析符号 ‘javax.servlet.ServletRequest‘` 等 Servlet 相关类以及 `PostConstruct` 的错误
确保引入 Servlet API 依赖(根据 Java EE/Jakarta EE 选择对应包名和版本)。引入所在的注解依赖(或若使用 Jakarta EE,同步修改导入语句的包名(javax.→jakarta.完成后,重新构建项目(Maven/Gradle 刷新依赖),即可解决符号无法解析的问题。原创 2025-10-22 15:22:39 · 47 阅读 · 0 评论 -
【异常】Java 8 date/time type `java.time.LocalDateTime` not supported by default:add Module “com.fasterx
摘要:文章分析了Spring Boot中Jackson序列化Java 8时间类型LocalDateTime时出现的InvalidDefinitionException错误。提供了四种解决方案:1)添加jackson-datatype-jsr310依赖(推荐);2)创建全局Jackson配置类;3)通过YAML配置;4)修复工具类中的ObjectMapper。建议统一配置并禁用时间戳格式,使用ISO-8601格式。最后给出了依赖冲突排查和测试验证等常见问题处理方法。原创 2025-09-19 14:26:54 · 157 阅读 · 0 评论 -
【异常】Java ClassCastException: cn.hutool.json.JSONArray cannot be cast to [Ljava.lang.String;
直接类型转换风险:Java 中不兼容类型无法直接转换JSON 库差异:不同 JSON 库的对象类型不同数据格式变化:系统演进过程中数据类型可能发生变化。原创 2025-09-17 09:34:12 · 59 阅读 · 0 评论 -
【异常】因Java版本异常提示Unresolved compilation problem: The method of(String) is undefined for the type List
摘要:项目出现编译错误,提示List.of()方法未定义,原因是使用了Java 9+的语法但可能存在编译环境问题。错误发生在DashScopeEmbeddingService.java第75行,建议将List.of(text)替换为Java 8兼容的语法如Arrays.asList(text)或Collections.singletonList(text)以解决兼容性问题。原创 2025-09-15 15:17:49 · 191 阅读 · 0 评论 -
【异常】org.yaml.snakeyaml.constructor.DuplicateKeyException: while constructing a mapping
YAML配置文件存在重复键错误,具体是在同一映射块中定义了多个namespace键。错误发生在第24行附近,与第21行的配置相关。YAML语法不允许同一层级存在重复键。解决方案是:检查配置文件,找到重复的namespace定义,删除或合并为一个,确保每个键在同一层级唯一。修改后重新运行应用即可解决该解析冲突。原创 2025-09-12 15:44:50 · 63 阅读 · 0 评论 -
【置顶】基线框架的技术选型,注意:每项一个独立的笔记
Java后端技术栈摘要:基于Spring Boot 3.0+构建,整合MyBatis-Plus、Redis等主流中间件,支持多数据源和分布式场景。采用Sa-Token权限框架,集成Swagger文档和国际化方案。包含代码生成器、XSS防护、Excel处理等企业级功能。前端使用Vue3+TS+Element Plus,实现前后端分离。支持Docker部署和SkyWalking监控,提供从开发到运维的完整解决方案。(149字)原创 2025-09-05 09:10:18 · 1065 阅读 · 0 评论 -
【项目实战】SMS4J 3.3.4 详解:短信聚合框架的核心价值与使用场景
SMS4J 3.3.4 是一款专注于的开源聚合框架,其核心目标是解决企业/开发者在对接多个短信 SDK 时面临的“重复开发、版本兼容、切换复杂”等痛点,通过统一的 API 接口实现对不同短信服务商的快速集成与管理。原创 2025-08-28 09:50:45 · 100 阅读 · 0 评论 -
【项目实战】Fast Excel(版本1.2.0)是由原EasyExcel作者创建的Java Excel处理工具
Fast Excel 1.2.0是Java高效处理Excel的工具,由EasyExcel作者开发。具有高性能、低内存消耗特点,采用流式处理解决大文件内存溢出问题。支持.xlsx格式,提供简洁API,相比POI更适用于大数据量场景。通过Maven/Gradle引入,适合数据导入导出和报表生成等业务需求。原创 2025-08-28 09:50:29 · 98 阅读 · 0 评论 -
【项目实战】揭秘自定义ConstraintValidator高效实现技巧
以“校验手机号格式”为例,演示从0到1的实现过程,帮助理解“灵活性高”的底层原因。注解需要满足Bean Validation规范,必须包含3个固定属性(messagegroupspayload),再根据需求添加自定义属性(如,是否允许固话)。// 注解作用范围:字段、方法参数等 @Target({原创 2025-08-27 20:25:34 · 92 阅读 · 0 评论 -
【项目实战】SpEL Validator 0.5.2-beta 是一款基于 SpEL 对 Jakarta Validation API进行扩展增强的工具包。
支持在校验消息中嵌入 SpEL 表达式,动态生成提示信息(如“当状态为#{#this.status}时,支付金额必须大于0”可通过配置文件或常量定义常用 SpEL 表达式,实现规则复用(避免重复编写相同表达式)。原创 2025-08-27 20:23:32 · 205 阅读 · 0 评论 -
【项目实战】Easy Captcha 1.6.2 详解:Java 图形验证码解决方案
Easy Captcha 1.6.2 是一款轻量级、高灵活性的,专为解决应用中的人机验证场景设计,支持多种验证码类型和部署环境,是 Java 生态中常用的验证码工具之一。通过以下内容,可快速掌握 Easy Captcha 1.6.2 的核心能力和使用方式,满足 Java 项目的人机验证需求。原创 2025-08-27 20:15:17 · 160 阅读 · 0 评论 -
【项目实战】Just Auth 1.16.7 详解:开源第三方登录整合方案
Just Auth 1.16.7 是一款专注于的开源组件,核心目标是帮助开发者脱离各平台繁琐的原生 SDK,通过统一的 API 快速实现多种第三方登录功能,大幅降低登录模块的开发成本与复杂度,让“接入第三方登录”从“耗时配置”变成“开箱即用”。Just Auth 1.16.7 是 Java 生态中第三方登录领域的“效率工具”,尤其适合需要快速接入多平台登录、追求开发效率的项目,其“统一抽象、开箱即用”的设计理念,能让开发者将更多精力聚焦于业务逻辑,而非重复的授权流程适配。原创 2025-08-27 20:01:37 · 95 阅读 · 0 评论 -
【异常】解决Java中的类型安全警告:原始类型Map赋值给泛型Map的问题
本文讨论了Java开发中常见的类型安全警告问题,即原始类型Map赋值给泛型类型Map<String, Object>时产生的警告。提供了三种解决方案:1)推荐使用类型转换配合@SuppressWarnings注解;2)使用TypeReference提供精确类型信息;3)不推荐的使用原始类型方法。建议优先采用第一种方案,它能平衡类型安全性和代码可读性,只需对原有代码进行最小改动。正确处理这类警告有助于编写更可靠的Java代码,减少运行时异常风险。原创 2025-08-27 19:41:30 · 48 阅读 · 0 评论 -
【项目实战】技术分析:CVE-2023-42276 缓冲区溢出漏洞——API调用中的高危风险点
CVE-2023-42276 作为一款高危缓冲区溢出漏洞,暴露了 Hutool 工具库在输入校验环节的设计缺陷,也为广大开发者敲响了警钟——在 API 调用及数据解析场景中,必须重视输入数据的合法性与大小校验,避免因“信任输入”导致严重安全漏洞。当前,Hutool 官方已提供修复方案,建议所有使用受影响版本的用户优先完成版本升级,并结合输入校验、日志监控等措施构建多层防护体系。原创 2025-08-27 18:58:31 · 127 阅读 · 0 评论 -
【项目实战】`@SuppressWarnings(“unused“)` 是 Java 中的一个注解(Annotation),用于告诉编译器忽略“未使用”的警告。
本文全面解析Java中@SuppressWarnings("unused")注解的技术细节。该注解用于抑制编译器对未使用代码元素(如变量、方法、导入类等)的警告,支持类、方法、变量三级作用域。通过示例代码展示其使用方式,并强调避免滥用的注意事项:仅在必要时使用、最小化作用域、配合注释说明、不替代代码审查。合理使用该注解可提升开发效率,但滥用会导致代码冗余,需在"警告控制"与"代码质量"间取得平衡。原创 2025-08-27 18:58:02 · 132 阅读 · 0 评论 -
【项目实战】Hutool:让Java开发“甜甜的”工具类库全解析
Hutool是一款提升Java开发效率的工具类库,通过模块化设计提供丰富功能。其核心价值在于:降低技术门槛(静态方法封装复杂API)、提升开发效率(减少重复代码)、保证代码质量(社区验证)。Hutool包含20+模块,涵盖加密、缓存、数据库等常见需求,支持按需引入。相比传统"复制粘贴"开发模式,Hutool提供标准化工具方法,让开发者专注业务逻辑而非底层实现。无论是新手还是专家,Hutool都能显著提升Java开发效率和质量。原创 2025-08-24 22:04:52 · 144 阅读 · 0 评论 -
【异常】Reason: Failed to determine a suitable driver class
Spring Boot应用启动失败,提示数据源配置问题。错误原因是没有指定数据库URL属性且找不到合适的驱动类。解决方案包括:1) 在配置文件中补充完整的数据库连接信息;2) 添加对应数据库驱动依赖;3) 如不需要数据库可排除自动配置;4) 检查并激活正确的环境配置文件。最常见情况是缺少数据库配置或驱动依赖,需根据实际需求选择对应解决方案。原创 2025-08-24 22:02:57 · 44 阅读 · 0 评论 -
【项目实战】Spring @Value注解详解:配置注入的艺术
Value是Spring框架提供的一个注解,用于将外部值注入到Spring管理的Bean的属性中。它可以从多种来源获取值,包括配置文件、系统属性、环境变量等,为应用程序提供了极大的灵活性。@Value注解可以应用于字段、方法参数和构造函数参数上,Spring容器在初始化Bean时会自动为这些元素注入指定的值。原创 2025-08-22 11:25:03 · 139 阅读 · 0 评论 -
【项目实战】Java中如何命名Java变量:Java变量命名规范详解
本文详细介绍了Java变量命名规范,强调良好命名对代码可读性的重要性。规范要求变量名包含合法字符、不以数字开头、不使用关键字,并建议合理长度。文章提供了正确命名示例(驼峰法、布尔变量前缀等)和常见错误(无意义命名、拼音混合等)。特别指出优秀开发者应遵循简洁达意、大小写敏感、一致性等原则,并解释技术细节如Unicode支持和$字符使用。良好的命名习惯能实现代码自文档化,减少注释需求。原创 2025-08-22 09:03:55 · 89 阅读 · 0 评论 -
【项目实战】MySQL Connector/J是 MySQL 官方提供的 Java 数据库连接驱动(JDBC 驱动),用于在 Java 应用程序与 MySQL 数据库之间建立连接并执行数据操作。
MySQL Connector/J 8.3.0是MySQL官方JDBC驱动,专为Java应用与MySQL数据库交互设计。它具有连接管理、SQL操作执行、数据类型转换等功能,支持Java 8+和MySQL 8.0+。该版本改进了性能(优化结果集处理和PreparedStatement缓存)、增强安全性(默认TLS 1.2+)、新增对JSON_TABLE等功能的支持,并修复了连接超时等Bug。使用Maven添加依赖即可集成,需注意URL参数配置和版本兼容性。适用于Spring Boot等Java项目,推荐结合连原创 2025-08-22 09:03:10 · 67 阅读 · 0 评论 -
【项目实战】MyBatis,多表关联查询详解
MyBatis 是一个优秀的持久层框架,它支持多种方式实现多表关联查询。在实际项目开发中,我们经常需要从多个表中获取关联数据,MyBatis 提供了灵活的解决方案。原创 2025-08-21 09:53:38 · 61 阅读 · 0 评论 -
【项目实战】实现基于Java注释(Javadoc)的“无注解、零入侵“API文档生成,可以通过SpringDoc与Javadoc的结合实现。
摘要:本文介绍如何通过SpringDoc结合Javadoc实现"无注解、零入侵"的API文档生成。核心方案是配置SpringDoc直接解析Java代码中的原生Javadoc注释,替代传统注解方式,避免代码污染。实现步骤包括添加依赖、配置OpenAPI、编写带Javadoc的控制器,最终自动生成Swagger文档。该方法无需额外注解,能自动解析类、方法、参数和返回值的Javadoc说明,保持代码整洁的同时生成规范API文档,但需注意Javadoc格式规范和版本兼容性问题。原创 2025-08-20 09:16:12 · 180 阅读 · 0 评论 -
【异常】java: 程序包io.swagger.v3.oas.models.info不存在
摘要:项目出现"io.swagger.v3.oas.models.info不存在"错误,表明缺少Swagger/OpenAPI v3依赖。解决方案是添加相应依赖:Maven用户可添加springfox-boot-starter或swagger-models依赖,Gradle用户则添加对应的implementation配置。添加后需重新构建项目使依赖生效。建议选择最新稳定版本以获得最佳兼容性。原创 2025-08-20 09:14:00 · 166 阅读 · 0 评论 -
【项目实战】JSP自定义标签开发+TLD文件元素详解
需要封装重复使用的JSP代码片段需要实现复杂的页面逻辑控制需要简化JSP页面的开发复杂度需要在多个项目中复用相同的功能组件必须继承javax.servlet.jsp.tagext.TagSupport或BodyTagSupport类try {继承SimpleTagSupport类实现doTag()方法。原创 2025-08-19 09:15:12 · 88 阅读 · 0 评论 -
【项目实战】外观设计模式(Facade Pattern)在Spring Boot中的应用
外观设计模式在SpringBoot中用于简化复杂系统交互。该模式通过创建统一接口封装子系统功能,降低客户端耦合度。在SpringBoot中,可定义外观类(如OrderFacade)整合多个服务(库存、支付、物流等),提供简洁API(如placeOrder)。适用于电商订单等涉及多服务的场景,优势包括提升系统可维护性和客户端易用性,但需避免过度设计和"上帝对象"问题。典型实现包括注入各子系统服务并在外观类中编排调用流程。原创 2025-08-19 09:14:12 · 132 阅读 · 0 评论 -
【项目实战】Jackson 序列化框架:高效可靠的统一选择
统一使用 Jackson 不仅能借助其高效、可靠的特性提升项目性能,更能通过标准化配置和工具类,减少团队协作中的“重复造轮子”和“规则不一致”问题。无论是单体应用还是分布式系统,Jackson 都能以其成熟的生态和灵活的扩展能力,成为序列化环节的稳定基石。遵循本文的配置方案和最佳实践,即可在项目中充分发挥 Jackson 的优势,实现“一次配置,全局高效”的目标。原创 2025-08-19 09:07:05 · 67 阅读 · 0 评论 -
【项目实战】Spring Bean管理与Bean的生命周期
Spring Bean是由Spring容器创建和管理的对象。Spring容器负责创建Bean、初始化其属性,并在不再需要时销毁它。原创 2023-04-14 07:56:44 · 212 阅读 · 0 评论 -
【项目实战】Java 8中表示日期和时间的类
前端获取的数据是:yyyy-MM-dd(如:”2017-10-19”),后端实体类的数据类型是java.util.Date,其中的数据转换问题。原创 2023-04-18 13:07:51 · 174 阅读 · 0 评论 -
【异常】Nacos客户端在与服务端通信时出现的网络连接错误,具体为`NoRouteToHostException: No route to host: connect`(没有到主机的路由)
日志显示Nacos客户端出现"NoRouteToHostException"网络连接错误,表明客户端无法连接到Nacos服务端(18848端口)。建议排查步骤:1)检查Nacos服务端是否正常运行;2)测试网络连通性(ping/telnet);3)检查防火墙/安全组是否开放18848端口;4)验证Nacos服务端配置是否正确;5)检查客户端配置的服务地址和端口。该问题通常由网络不通、端口不可达或防火墙限制导致。原创 2025-08-06 08:18:38 · 147 阅读 · 0 评论 -
【项目实战】在Java中,Lombok库提供的@Builder、@NoArgsConstructor和@AllArgsConstructor注解可以协同工作,帮助我们更简洁地实现建造者模式。
摘要:Lombok的@Builder、@NoArgsConstructor和@AllArgsConstructor注解组合可简化建造者模式实现。@Builder启用链式调用构建对象,@NoArgsConstructor提供无参构造(Builder必需),@AllArgsConstructor生成全参构造。示例展示了如何通过简洁的链式语法(如User.builder().username().email().build())创建复杂对象,既保持灵活性又提升代码可读性,特别适用于多属性类。原创 2025-08-05 14:09:04 · 121 阅读 · 0 评论 -
【项目实战】`CommandLineRunner`是一个接口,用于在应用启动完成后执行特定的代码逻辑。它通常用于应用启动时的初始化操作,如数据加载、缓存预热、初始化配置等。
Spring Boot的CommandLineRunner接口用于在应用启动后执行初始化操作。它会在容器初始化完成后执行,支持获取命令行参数,多个实现类可通过@Order注解指定执行顺序(值越小越优先)。与ApplicationRunner功能类似,但CommandLineRunner接收字符串数组参数,而ApplicationRunner提供更丰富的参数处理方法。开发者可根据需求选择合适的接口实现数据加载、缓存预热等启动任务。原创 2025-07-28 14:00:37 · 94 阅读 · 0 评论 -
【项目实战】Spring Boot:简化Java开发的革命性框架
Spring Boot以其“约定优于配置”的理念,极大地简化了Java开发流程,让开发者能够专注于业务逻辑的实现。其自动配置、 starters 机制、内置服务器等核心功能,解决了传统Spring开发中的诸多痛点。通过本文的介绍,相信大家对Spring Boot有了更深入的了解。无论是开发简单的Web应用,还是构建复杂的微服务系统,Spring Boot都是一个理想的选择。随着Spring Boot生态的不断完善,它必将在Java开发领域持续发挥重要作用,为开发者带来更多便利。原创 2025-07-21 20:50:44 · 86 阅读 · 0 评论 -
【异常】Jackson序列化提示Cannot deserialize instance of `java.lang.String` out of START_OBJECT token;
摘要: JSON反序列化错误源于EnglishStudyReq类的parameters字段类型与实际请求不匹配。日志显示Jackson无法将JSON对象转为String类型。解决方案:1) 推荐将parameters改为Map<String,Object>或自定义实体类以匹配JSON对象结构;2) 若需保留String类型,请求中需传递转义后的JSON字符串(如"{\"key\":\"value\"}")。类型定义与实际数据结构一致是解原创 2025-07-18 12:15:48 · 174 阅读 · 0 评论
分享