- 博客(70)
- 收藏
- 关注

原创 一个全新设计的 Java 脚手架;一副崭新的 Java 生态蓝图;一门现代化的 Java 编程哲学。
一个值得与 IntelliJ IDEA 配套的现代 Java 脚手架,你的专属生产力工具。
2024-10-08 10:54:12
2384
3
原创 官宣开源!通过 AI 驱动的前后端 Java & Vue 脚手架(AI 后台管理)正式发布!
一个原生集成 AI 并通过 AI 驱动的重新构思、重新设计、重新开发的 Java 前后端脚手架。本项目整合了大量现代化技术栈,具有代码质量高、系统维护性强、业务功能广泛等特点。
2025-05-27 11:31:02
966
原创 升级 SpringBoot3 全项目讲解 - 完全超越 Mybatis 的框架有哪些?
在 Spring Boot 3 环境下,我们有多种选择可以替代 MyBatis,如 Spring Data JPA、jOOQ 和 Querydsl。这些框架不仅提供了更强大的数据访问能力,还通过类型安全和自动生成 SQL 等功能,减少了开发者的工作量。选择哪个框架取决于项目的具体需求和开发者的偏好,但无论如何,这些框架都为我们在 Spring Boot 3 中构建现代化的应用程序提供了更多的可能性。希望本文能帮助你在升级 Spring Boot 3 的过程中,找到最适合你项目的数据库访问框架。
2025-02-28 11:02:40
917
原创 升级 SpringBoot3 全项目讲解 - 在 SpringBoot3 中实现一个秒杀系统的窍门
在本文中,我们详细讲解了如何将项目升级到 SpringBoot 3,并在此基础上实现了一个简单的秒杀系统。我们探讨了如何使用 Spring Data JPA、Redis 和 RabbitMQ 来优化系统的性能与稳定性。希望本文能帮助你在 SpringBoot 3 中更好地应对高并发场景。fill:#333;color:#333;color:#333;fill:none;是否用户请求商品管理模块库存检查库存充足?扣减库存创建订单发送订单到消息队列消息队列订单处理返回库存不足。
2025-02-28 11:01:59
566
原创 《你不知道的 JAVA》喝 Java 咖啡配元组蛋糕,饿!
时光飞逝,项目新增功能越来越多,你也创建了更多返回特定字段的 DTO 对象。你可能觉得这很正常——项目越大类文件不就越多吗?很不幸,项目越大类文件越多的定义不包括 DTO 类型的文件。我们有一种专业术语来形容项目中存在过量的 DTO 文件,叫做 **DTO 爆炸**。
2025-02-26 10:00:42
1009
原创 升级 SpringBoot3 全项目讲解 - 基于 SpringBoot3 的身份认证与 2 代有什么不同?
Spring Boot 3 在身份认证方面带来了许多新特性和改进,特别是在 OAuth2 和的配置上。通过本文的讲解,相信大家对如何升级 Spring Boot 2 项目到 Spring Boot 3 有了更清晰的认识。希望这些内容能帮助大家在实际项目中顺利升级,享受 Spring Boot 3 带来的新特性。
2025-02-21 11:10:38
661
原创 后端的恩情还不完!如何怼那些在接口中直接返回数据库对象的后端开发?
在微服务架构盛行的今天,接口设计的重要性愈发凸显。知道主人需要什么懂得保护主人的隐私能够快速响应需求保持优雅的沟通方式让我们共同努力,告别"全量对象直传"的黑暗时代,迎接精准、安全、高效的接口设计新时代!后记写完这篇文章时,隔壁工位的前端小哥突然给我点了杯奶茶。看来良好的接口设计,真的可以促进团队和谐呢 ( ̄▽ ̄)~*
2025-02-21 10:51:54
579
原创 升级 SpringBoot3 全项目讲解 - 什么是 Mermaid?为什么大厂都用他画流程图?
Mermaid 以其简洁的语法、强大的功能和与开发流程的无缝集成,成为了大厂开发者的首选工具。无论是绘制流程图、时序图,还是类图、甘特图,Mermaid 都能轻松应对。更重要的是,它让文档的编写和维护变得更加高效和可控。如果你还没有尝试过 Mermaid,不妨从今天开始,将它引入你的开发工具箱。相信你会爱上这种用代码绘制图表的方式!
2025-02-20 11:56:25
825
原创 SpringAI 提供 DeepSeek 直连支持,现在就给你 Java 项目用上 DeepSeek!
通过 SpringAI 集成 DeepSeek,我们不仅获得了国产大模型的能力,更重要的是遵循了可持续演进的架构原则。将 AI 调用封装为领域服务为重要 AI 操作添加审计日志定期评估模型输出的业务一致性随着 JDK 21 虚拟线程的普及,结合 Quarkus 等新兴框架,Java 在 AI 工程化领域必将大有可为。现在正是将 DeepSeek 接入项目的最佳时机!
2025-02-20 08:00:06
484
原创 升级 SpringBoot3 全项目讲解 — 如何在 SpringBoot3 种用 JsonSchema 来验证 Json是否有效?
JsonSchema 定义是验证 JSON 数据的关键。"name": {},"age": {},这个定义表示 JSON 对象必须包含name和age两个字段,其中name是字符串类型,age是整数类型且最小值为 0。通过本文的讲解,我们掌握了在 SpringBoot3 中使用 JsonSchema 验证 JSON 数据的有效性的方法。这一技术不仅提升了数据验证的便捷性和准确性,还增强了应用的健壮性。在实际开发中,根据具体需求灵活定义 JsonSchema,能够有效保障数据的正确性和完整性。
2025-02-19 10:48:35
991
原创 升级 SpringBoot3 全项目讲解 — Spring Boot 3 中如何发Http请求?
在 Spring Boot 3 中,发送 HTTP 请求的方式更加多样化和灵活。WebClient是响应式编程的首选工具,而HttpClient则适合传统的同步和异步请求。根据你的项目需求选择合适的工具,可以大大提高开发效率和性能。希望本文能帮助你顺利升级到 Spring Boot 3,并在项目中高效地发送 HTTP 请求。如果你有任何问题或建议,欢迎在评论区留言讨论。Spring Boot 3 官方文档Java 11 HttpClient 文档Spring WebFlux 文档。
2025-02-19 10:44:33
1030
原创 升级 SpringBoot3 全项目讲解 — 别再使用 Optional 了,请使用 Jspecify 来替代它
Jspecify是一个用于静态空值分析的工具,它通过注解和编译器插件,帮助开发者在编译时捕获潜在的空指针问题。与Optional不同,Jspecify不需要运行时包装,而是通过静态分析来确保代码的安全性。
2025-02-16 10:30:11
684
原创 升级 SpringBoot3 全项目讲解 — JOOQ 为什么全面超越了 Mybatis?
JOOQ 是一个基于 Java 的 SQL 构建工具,它允许开发者以类型安全的方式编写 SQL 查询。与 MyBatis 不同,JOOQ 并不依赖于 XML 配置文件,而是通过代码生成器直接生成与数据库表对应的 Java 类。这种方式不仅减少了配置的复杂性,还提高了代码的可维护性和可读性。
2025-02-16 10:24:48
1270
原创 升级 SpringBoot3 全项目讲解 — 周边店铺展示功能如何实现
本文详细介绍了如何将 Spring Boot 项目升级到 3.x 版本,并实现了一个简单的周边店铺展示功能。通过升级 Spring Boot,我们可以利用其新特性和性能优化,同时通过实现具体的业务功能,展示了如何在 Spring Boot 项目中处理地理位置相关的需求。希望本文对你升级 Spring Boot 和实现类似功能有所帮助。如果你有任何问题或建议,欢迎在评论区留言讨论。
2025-02-07 11:02:52
704
原创 《你不知道的 JAVA》寻找与 Docker 集成的方法(第二章)
这种方法看似很完美,实际却有一个重要缺陷:当你的 package.json 等依赖定义文件发生变化时,当前的 Layer 极其下属都会失效。也就是说,无论你是增加还是删除任何一个小依赖,那所有的依赖项都需要重新安装。在一个大项目中,任何细微的改动都触发成千上万的依赖重新解析与安装的成本实在太大了;好在任何成熟的构建工具,都提供一个基本功能叫「增量构建」。
2025-02-07 10:56:53
709
原创 《你不知道的 JAVA》 送给 Offset & Limit 的告别气球
本章介绍的分页解决方案实际还有两个小问题需要解决。这两个暂留给有兴趣的同学思考。若分数表中出现分数相同的玩家,分页时可能会产生什么问题?产生的这个问题怎么解决?你可以把你的想法和答案写在评论区,或者留言希望看到正确答案,我将会在后续的时间公布。我是 Chuck1sn,一个长期致力于现代 Jvm 生态推广的开发者。关注我的账号,第一时间收到文章推送。
2025-01-13 08:30:00
1492
原创 升级 SpringBoot3 全项目讲解 — 为什么 SpringBoot3 应该抛弃 Maven,搭配 Gradle 来使用?
Gradle 采用了增量构建和缓存机制,这使得它在构建速度上比 Maven 更快。尤其是在大型项目中,Gradle 的优势更加明显。Spring Boot 3 项目通常包含大量的依赖和模块,使用 Gradle 可以显著减少构建时间。
2025-01-13 08:30:00
2837
原创 升级 Spring Boot 3 全项目讲解 — 给项目增加聊天对话功能
通过升级到 Spring Boot 3,我们可以利用最新的技术和特性来增强项目的功能。本文详细介绍了如何升级 Spring Boot 3,并在此基础上实现了一个实时聊天对话功能。我们还探讨了如何扩展功能,例如用户身份验证和消息持久化。希望这篇文章能够帮助你在 Spring Boot 3 中成功实现聊天功能。如果你有任何问题或建议,欢迎在评论区留言讨论!
2025-01-08 09:21:36
1055
1
原创 升级 Spring Boot 3 配置讲解 — 新版本的秒杀系统怎么做?
通过升级到 Spring Boot 3,我们可以利用最新的技术和特性来构建高效的秒杀系统。本文介绍了如何使用 Redis 缓存库存、使用 RabbitMQ 异步处理订单、以及使用 RateLimiter 进行限流。希望这些内容能够帮助你在新版本的 Spring Boot 中构建出更加稳定和高效的秒杀系统。如果你在升级过程中遇到任何问题,欢迎在评论区留言讨论。我们下次再见!
2025-01-08 09:17:37
905
原创 升级 Spring Boot 3 配置讲解 — JDK 23 会给 SpringBoot 带来什么特性?
JDK 23 为 Spring Boot 带来了许多令人兴奋的新特性,如虚拟线程、模式匹配的增强以及新的 API 和库。通过升级到 JDK 23 和 Spring Boot 3,你可以充分利用这些新特性,提升应用的性能和开发效率。希望本文能帮助你顺利升级并利用这些新特性。如果你在升级过程中遇到任何问题,欢迎在评论区留言讨论。
2025-01-07 10:04:38
1626
原创 升级 Spring Boot 3 配置讲解 —— 为何 SpringBoot3 淘汰了 JDK8?
Spring Boot 3 淘汰 JDK 8 是为了能够利用更高版本 JDK 的新特性和性能优化。虽然升级过程可能会带来一些挑战,但这是保持技术栈现代化的必要步骤。通过升级到 Spring Boot 3 和 JDK 17,你将能够享受到更高效、更安全的开发体验。希望本文能帮助你顺利升级到 Spring Boot 3。如果你在升级过程中遇到任何问题,欢迎在评论区留言讨论。
2025-01-07 10:02:45
1225
原创 升级 Spring Boot 3 配置讲解 —— Spring Boot 3 核心源码专讲
我们可以通过创建一个自定义 Starter 来理解其工作原理。在其他项目中引入自定义 Starter 依赖后,可以直接使用MyService通过对 Spring Boot 3 核心源码的解析,我们可以更好地理解其自动配置和依赖管理机制。Spring Boot 3 的强大之处在于其高度模块化的设计和灵活的扩展能力,这使得开发者可以轻松构建高效、可维护的应用。希望本文对你理解 Spring Boot 3 的核心源码有所帮助。如果你有任何问题或建议,欢迎在评论区留言讨论!
2025-01-06 17:20:23
1374
原创 升级 Spring Boot 3 配置讲解 —— 如何在 Spring Boot 3 中接入生成式 AI?
生成式 AI 是一类能够生成新内容的 AI 模型,例如文本、图像、音频等。近年来,随着 GPT、DALL-E 等模型的推出,生成式 AI 在自然语言处理、图像生成等领域取得了显著的进展。在本文中,我们将以 OpenAI 的 GPT 模型为例,展示如何在 Spring Boot 3 中集成生成式 AI。通过本文的介绍,你已经学会了如何在 Spring Boot 3 中集成生成式 AI。Spring Boot 3 的强大功能和 OpenAI 的 GPT 模型相结合,为开发者提供了无限的可能性。
2025-01-06 17:18:34
1803
1
原创 升级 Spring Boot 3 配置讲解 —— 支持断点传输的文件上传和下载功能
断点传输是指在文件传输过程中,如果传输中断(如网络故障或用户手动暂停),可以从断点处继续传输,而不需要重新开始。这种技术对于大文件传输尤为重要,因为它可以显著减少重复传输的时间和带宽消耗。断点上传:客户端可以将文件分成多个块(Chunk),分批次上传,服务器端根据上传的块信息进行合并。断点下载:客户端可以请求文件的某一部分,服务器端根据请求的范围返回对应的文件内容。通过本文的介绍,你已经学会了如何在 Spring Boot 3 中实现支持断点传输的文件上传和下载功能。
2025-01-05 21:47:39
1046
2
原创 升级 Spring Boot 3 配置讲解 —— 如何处理文件上传下载?
通过本文的介绍,你已经学会了如何在 Spring Boot 3 中处理文件上传和下载。Spring Boot 3 提供了更加简洁和强大的 API,使得文件操作变得更加容易。希望本文的内容能够帮助你在实际项目中更好地处理文件上传和下载的需求。如果你有任何问题或建议,欢迎在评论区留言讨论。
2025-01-05 21:45:19
937
原创 Spring Boot 3 配置大全系列 —— 如何配置用户的登录与认证?
Spring Boot 3 在用户登录与认证方面提供了更灵活、更安全的配置方式。通过,开发者可以轻松配置基于表单的登录、OAuth2、JWT 等多种认证方案。升级到 Spring Boot 3 不仅能够享受新特性带来的便利,还能为应用的安全性提供更强保障。希望本文能帮助你更好地理解 Spring Boot 3 中的用户认证配置,并在实际项目中顺利应用。如果你有更多问题或需要进一步的帮助,欢迎在评论区留言讨论!
2025-01-04 14:53:31
1101
原创 SpringBoot3 集成配置讲解 - SpringBoot3 与 SpringBoot2 的核心差别和升级理由。
Spring Boot 自诞生以来,就以简化 Spring 应用的初始搭建及开发过程而著称。从 2.x 到 3.x,Spring Boot 迎来了重大更新,不仅对底层框架进行了升级,还引入了许多新特性。本文将重点讲解 Spring Boot 3 的集成配置,并对比 Spring Boot 2,帮助开发者更好地理解升级的理由和步骤。Spring Boot 3 带来了许多新特性和改进,但也带来了一些 Breaking Changes。
2025-01-04 14:41:19
1125
原创 让 Java 再次伟大 - Mybatis 框架失败在哪里?为何面试都要问 JOOQ 这个现代框架?
相比之下,JOOQ 作为一款现代 ORM 框架,通过类型安全的 SQL、流畅的 API 设计、强大的动态 SQL 支持以及丰富的性能优化选项,提供了更加高效和灵活的持久层解决方案。SQL 与代码的分离使得开发者在编写和维护 SQL 时需要频繁切换上下文,增加了开发的复杂性。虽然 MyBatis 提供了一些基本的类型处理功能,但在复杂的业务场景中,这种类型不安全的设计仍然是一个明显的缺陷。性能优化是软件开发中的重要课题,JOOQ 提供了丰富的性能优化选项,使得开发者可以在处理大量数据时,保持较高的性能。
2025-01-03 17:00:42
953
原创 让 Java 再次伟大 - 为什么你应该抛弃 Maven 转向 Gradle?
多年来,Maven 一直是 Java 项目的默认构建工具,它的依赖管理和项目结构标准化为开发者带来了极大的便利。虽然 Maven 在过去十几年中为 Java 开发者提供了可靠的服务,但随着项目复杂度的增加和技术的不断演进,Gradle 作为一种更现代化、灵活的构建工具,已经展现出了明显的优势。从构建脚本的灵活性、构建性能的提升、依赖管理的强大功能,到与现代化开发流程的集成,Gradle 都表现得更加出色。显然,Gradle 的语法更加简洁,且更接近编程语言,这使得开发者可以更容易地编写和维护构建脚本。
2025-01-03 16:53:39
766
原创 让 Java 再次伟大 - 你应该用 JOOQ 而不是 MyBatis
JOOQ 作为一个现代数据库操作框架,凭借其类型安全的 SQL、自动化代码生成、SQL 优先的设计理念以及丰富的现代特性,相对于 MyBatis 具有显著的优势。JOOQ 不仅提高了开发效率和代码的可维护性,还提供了更强大的功能和更灵活的 SQL 操作方式。在现代开发中,JOOQ 无疑是一个更先进、更高效的选择。对于那些追求代码质量、开发效率和现代特性的开发者来说,JOOQ 是一个不可忽视的强大工具。
2025-01-02 09:38:44
1471
2
原创 让 Java 再次伟大 - 什么是 ORM 什么是 JOOQ 什么是数据库操作层?
ORM(Object-Relational Mapping,对象关系映射)是一种编程技术,用于在面向对象编程语言中实现对象与关系数据库之间的映射。ORM 的核心思想是将数据库中的表、行和列映射为程序中的类、对象和属性,从而让开发者能够以面向对象的方式操作数据库,而无需直接编写 SQL 语句。JPA ORM 和 JOOQ 是两种不同的数据库操作框架,它们的设计理念和适用场景各不相同。JPA ORM 通过将数据库操作抽象为对象操作,提高了开发效率和代码的可维护性,但在某些复杂的查询场景下可能存在性能问题。
2025-01-02 09:33:51
1163
原创 让 Java 再次伟大 - Java 21 vs Java 8: 业务开发中不可忽视的新特性
Java 21 带来了许多令人兴奋的新特性,这些特性不仅提高了开发效率,还使得代码更加简洁和易读。虽然并非所有新特性都适用于每一个项目,但了解它们并考虑在适当的时候采用它们,将使你在业务开发中保持竞争力。如果你还在使用 Java 8,是时候考虑升级到 Java 21 了!不仅能够享受到最新的语言特性,还能获得性能上的提升和安全性的改进。
2024-12-31 17:27:18
622
原创 让 Java 再次伟大 - 你不知道的 Java 之集成 Docker 的那些密事(一章节)
Docker 是一种容器服务,为了方便理解你可以认为他是一个轻量级的虚拟机。通过 Docker 创建的容器,在宿主机上共享硬件资源和底层系统与接口,同时又能提供互相隔离的应用程序环境。这是怎么做到的?由于 Linux 一切资源皆文件,所以只要简单的使用命名空间即可实现进程之间的隔离。
2024-12-31 17:04:38
1537
原创 让 Java 再次伟大 - 吊打面试官之分页查询的终极实战策略
JOOQ 就是 SQL,当你在使用 JOOQ 的时候,你就是在使用 SQL;一切你能够在 SQL 标准下实现的操作,几乎都能在 JOOQ 以相同的方式实现。记住这句话,你就理解了整个JOOQ 的设计思想。使用 JOOQ,通过其对 SQL 标准的全面支持,外加将 SQL 运行时异常提前到编译时的类型安全机制, 将会帮你重新拿起 SQL 这个超级武器横扫一切需求。以上所有代码都可以在Github仓库中找到。如果你觉得教程有帮助,求顺手给一个Star。
2024-12-06 18:07:19
569
原创 让 Java 再次伟大 - 如何在 CRUD 上做出成绩让面试官心服口服?
数据库交互时,总是从 DSLContext 开始的。就是插入数据的方法——这有点像 JPA 的 Entity,将面向对象编程语言中的对象模型与关系数据库中的数据模型进行了映射。是一个 POJO 用以承载我们的数据,它也是通过 JooqCodeGen 插件自动生成的。这都是自动的——当对象在数据库里已经存在时,再调用。代表的数据库状态可能不是最新的,因为别的线程可能在你之后改变了数据库状态。是一个数据库表的对象,它是通过 JooqCodeGen 插件自动生成的。
2024-12-06 09:02:58
565
原创 什么是单元测试的 WWW 与 AAA 原则?读完本篇文章可瞬间升职公司 CTO
这些编码哲学和你用什么语言和框架无关,任何单元测试都是靠这种思维写出来的。更多的单元测试内容待我后续整理好后发出。大家喜欢的话不妨购买一个MJGA 脚手架的 Pro 版本。
2024-11-06 09:23:40
898
原创 分析 SQL 语句的一般步骤
性能优化最忌讳之一便是无用功优化。准确的找出问题 SQL 以及分析其原因,是优化 SQL 语句的第一步也是最重要的一步。
2024-11-04 15:50:29
515
原创 30 秒成为公司单元测试的首席专家,老板见面就叫你大哥。
程序首先是写给人读的,然后顺便让机器能够运行。而编写编程的第一步就是命名,单元测试也一样。
2024-11-04 15:45:01
476
原创 为什么选择 Spring data hadoop
虽然最终选择了使用 spring data 来操作 hbase,但这并不代表其他的方式都不好。每种工具都有自己的特点和不足,结合自己的实际情况做出选择才是最明智的做法。
2024-10-27 11:36:06
1479
原创 一分钟看懂死锁的概念
当线程 A 持有独占锁 a,并尝试去获取独占锁 b 的同时,线程 B 持有独占锁 b ,并尝试获取独占锁 a 的情况下,就会发生 AB 两个线程由于互相持有对方需要的锁,而发生的阻塞现象,我们称为死锁。下面用一个非常简单的死锁示例来帮助你理解死锁的定义。// 线程a});// 线程b});try {System.out.println("线程a尝试获取integer.class");try {System.out.println("线程b尝试获取String.class")
2024-10-27 11:25:16
451
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人