自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

訾博(ZiBo)的博客

不学习的人没有未来。

  • 博客(827)
  • 资源 (2)
  • 收藏
  • 关注

原创 Java中的对象去重工具类——灵活、高效的去重解决方案

是一个专门用于对象去重的工具类,它提供了基于对象字段的灵活去重功能。通过这个工具类,我们可以根据一个或多个字段对对象列表进行去重,并且可以选择是否保持原有列表的顺序。是一个非常实用的工具类,它可以帮助我们轻松实现基于对象字段的去重功能。无论是简单的单字段去重,还是复杂的多字段组合去重,它都能胜任。此外,它还提供了保持顺序的选项,满足了不同场景下的需求。如果你在项目中遇到类似的需求,不妨试试这个工具类,相信它会为你节省不少时间和精力。

2025-01-13 11:54:19 812

原创 全面掌握AI提示词的艺术:从基础到高级的深度探索

文字功底是长期价值巨大的技能,不能速成。通过不断的练习和思考,我们可以在与AI的对话中,提升自己的思维能力和表达技巧。希望这篇文章能为你提供启发,让我们一起在AI提示词的世界中探索更多可能性!

2025-01-12 11:12:38 294

原创 Java参数校验最佳实践:Validator与@AssertTrue深度解析

NotBlank: 字符串不能为null且去除空格后长度必须大于0@Pattern: 通过正则表达式校验字符串格式@Size: 校验字符串、集合、数组等的长度范围: 校验方法返回值必须为true@NotNull: 不能为null@Min: 数值必须大于等于指定值@Max: 数值必须小于等于指定值@Email: 校验邮箱格式@Data/*** 图片URL地址*/

2025-01-09 14:56:26 412

原创 深入理解 JavaScript 立即执行函数表达式(IIFE)

创建独立的作用域避免全局污染实现模块化保护私有变量很多老代码仍在使用 IIFE在某些特定场景下 IIFE 仍是最佳选择理解 IIFE 有助于更好地理解 JavaScript 的作用域和闭包概念。

2025-01-06 20:56:51 414

原创 使用 Promise.all 优雅处理多个异步操作:等待多个异步操作全部完成

同时执行多个独立的异步操作等待所有操作完成后统一处理结果优雅地处理错误情况写出更简洁清晰的代码合理使用 Promise.all 可以让异步代码更优雅,性能更好。但也要注意它的"一失败全失败"特性,在实际应用中要根据业务需求选择合适的 Promise 组合方式。

2025-01-06 20:40:15 468

原创 CentOS 使用 yum 方式安装 Nginx

你可以通过访问服务器的 IP 地址来验证 Nginx 是否正在运行。如果看到 Nginx 的欢迎页面,则说明安装成功。如果你的服务器上启用了防火墙(查看 nginx 相关文件。,则说明配置文件没有问题。

2025-01-05 15:24:30 608

原创 【Next.js】002-路由篇|App Router

路由(Router)是 Next.js 应用的重要组成部分。在 Next.js 中,路由决定了一个页面如何渲染或者一个请求该如何返回。Next.js 有两套路由解决方案,之前的方案称之为“Pages Router”,目前的方案称之为“App Router”,两套方案目前是兼容的,都可以在 Next.js 中使用。从 v13.4 起,App Router 已成为默认的路由方案,新的 Next.js 项目建议使用 App Router。本篇我们会学习 App Router 下路由的定义方式和常见的文件约定。

2024-12-28 15:02:57 1183

原创 【Next.js】001-项目初始化

訾博自述:AI 时代,我觉得 Next.js 能满足轻量、快速、灵活的需求!2024年12月28日首先,让我们学会创建一个 Next.js 项目!Next.js 提供了开箱即用的脚手架,内置支持 TypeScript、ESLint 等功能,零配置即可实现自动编译和打包。本文包括:自动创建项目和手动创建项目,以及开发项目时常用的脚本命令。

2024-12-28 10:33:02 1075

原创 JSON路径工具类`JsonPathUtil`的实现与应用

获取普通属性值:如user.name,获取user对象的name属性值。获取数组元素:如,获取users数组中第一个元素的name属性值。支持多层嵌套:如,获取嵌套结构中指定员工的姓名。本文详细介绍了工具类的实现原理和应用。如何解析复杂的JSON路径表达式,包括嵌套属性和数组元素。使用将JSON字符串转换为可操作的Java对象。通过反射和类型检查,实现了对Map和普通Java对象的字段访问。优点:轻量级:不依赖于第三方库,适合对JSON路径解析需求不复杂的场景。易于理解和扩展。

2024-11-25 16:21:55 865

原创 如何在Java中将方法作为参数传递

在Java中,我们可以使用函数式编程的概念,特别是lambda表达式、方法引用和函数式接口,将方法作为参数传递给另一个方法。这种技术可以让我们编写更加简洁和灵活的代码。

2024-11-06 14:02:43 660

原创 深入理解 Lombok 的 @Accessors 注解

Lombok是一个 Java 库,通过注解处理器在编译时生成常用的样板代码,如构造方法、getter/setter 方法、toString方法等。使用 Lombok 可以显著减少样板代码,提高代码的可读性和开发效率。

2024-11-06 10:44:32 864

原创 理解 TypeScript 枚举及其最佳实践

枚举是一种数据结构,用于定义一组命名常量。这在需要表达一组固定的、相关的值时非常有用,例如一周的天数、用户角色或颜色类型。

2024-11-06 09:29:47 403

原创 简化Web扩展中的消息传递:WebExt-Bridge的使用指南

WebExt-Bridge 的设计初衷是简化 Web 扩展中各部分之间的通信。无论是在后台脚本、内容脚本、开发者工具、弹出窗口、选项页还是窗口上下文之间,WebExt-Bridge 都能提供一个高效且一致的方式来发送和接收消息。该包已在生产环境中经过广泛测试,例如在 Bugflow 项目中得到了应用。WebExt-Bridge 项目最初由 Neek Sandhu(@zikaari)于 2017 年启动,现已由 Server Side Up 接手维护。

2024-11-05 10:23:33 469

原创 TypeScript延迟执行工具类

这个Delaysleep: 基础延迟execute: 延迟执行函数debounce: 创建防抖函数throttle: 创建节流函数通过合理使用这些方法,可以有效控制函数的执行时机,优化性能,提升用户体验。在实际开发中,要根据具体场景选择合适的方法使用。

2024-11-04 09:25:25 514

原创 深入理解 Spring Boot 中的 @PathVariable 注解

是 Spring MVC 提供的一个注解,用于将 URL 中的动态部分绑定到控制器方法的参数上。它主要用于处理 RESTful 风格的 API,其中资源的标识信息通常作为路径的一部分。例如,在以下 URL 中,{id}使用,可以将{id}的值绑定到控制器方法的参数上,以便在方法内部进行业务处理。特性绑定位置URL 路径的动态部分URL 查询参数或表单参数适用场景资源的唯一标识符,如 ID、用户名等过滤、分页、排序等辅助信息URL 设计影响明确资源层级结构,符合 RESTful 风格。

2024-10-31 14:31:46 2176

原创 使用阿里云 MQTT 服务进行消息传输的基本实践

通过上述步骤、我们成功地在 Spring Boot 项目中集成了阿里云的 MQTT 服务、能够实现消息的发送和接收. 在实际项目中、您可以根据业务需求进一步扩展和优化代码. 同时、确保配置的安全性、避免敏感信息泄露.希望这篇博客能帮助您更好地理解和使用阿里云的 MQTT 服务. 如果您有任何问题或建议、欢迎在下方留言讨论.

2024-10-29 10:19:52 711

原创 深入探讨Spring Data JPA中的三种查询方式

Entity@IdSpring Data JPA提供的三种查询方式各有优劣,选择合适的查询方式需要根据具体的业务需求、查询复杂性、性能要求以及团队的技术偏好来综合考虑。一般情况下,优先使用基于方法名的查询或JPQL查询,以保持代码的可维护性和可移植性;在需要特殊优化或复杂查询时,再考虑使用原生SQL查询。同时,结合使用Spring Data JPA提供的其他功能,如Specifications或Querydsl,可以实现更强大的动态查询能力。

2024-10-21 14:22:27 951

原创 Tera 中文教程:简明易懂的入门指南

Tera 是一个强大的 Rust 模板引擎,灵感来源于 Jinja2 和 Django 的模板系统。它广泛应用于 Web 开发中,用于生成动态 HTML 内容。本文将带领您从零开始,逐步了解如何在 Rust 项目中使用 Tera,包括基本设置、模板语法、高级用法以及内置的过滤器、测试和函数。

2024-09-24 09:37:22 652

原创 Docker 教程:如何查看容器的最后 300 行实时日志

Docker 容器运行时会生成日志,记录容器内应用的标准输出(stdout)和标准错误(stderr)。这些日志对于监控应用性能、排查故障至关重要。通过合理地查看和管理日志,可以提高问题解决的效率,确保应用稳定运行。Docker 提供了命令用于访问容器的日志。这个命令支持多种参数,允许用户根据需要筛选和显示日志内容。要查看指定容器的最后 300 行实时日志,可以结合使用--tail和--follow选项。

2024-09-23 14:20:59 1391

原创 获取URL参数的最佳实践:兼容Hash模式的TypeScript实现

在某些 JavaScript 或 TypeScript 项目中,可能会有大量使用 关键字的代码。当我们需要将这些代码迁移到其他框架(例如 Vue 3 的组合式 API)时,可能需要将 的用法改为 的形式。这种情况下,正则表达式替换将显得尤为高效。首先,确保你的 VS Code 已经安装并打开了需要进行替换的代码文件。你可以通过以下快捷键打开查找和替换面板:在查找输入框的右侧,你会看到一个带有“.*”的图标。点击这个图标以启用正则表达式功能。启用后,VS Code 将允许你使用正则表达式进行搜索和替换。

2024-09-20 11:58:31 1028

原创 【Rust】008-常用集合

在Java中,`List`接口是一个非常常用的数据结构接口,它定义了一组可以用于操作**有序集合**的方法。`ArrayList`是`List`接口的一个常见实现,提供了**动态数组**的功能。通过`ArrayList`,我们可以方便地进行**元素的添加、删除和访问**。

2024-09-10 06:46:36 1147

原创 【Rust】007-包管理与模块管理

Cargo 是Rust 语言的包管理器。下载你的 Rust 包的依赖项;编译你的包;创建可分发的包,并将它们上传到crates.io(即Rust社区的包注册表)。当项目非常大的时候,我们需要一种将项目代码根据不同功能划分的方法,且各个功能之间的访问是可以自主控制的。这个方法在 Rust 中就是模块。组织项目代码;可见性控制。如果把所有模块都平铺到src/文件夹下的话,项目一大文件就会非常多。所以我们需要一个通过文件夹组织模块的方法。如果要将文件夹作为模块,在文件夹下一定要有一个。

2024-09-04 23:04:38 1169

原创 【Rust】006-Rust 枚举与`match`、`if let`、`let else`

在编程中,我们经常需要处理一组有限的、明确的值。例如,在游戏中,角色的移动方向只有上、下、左、右四种选择。这种场景下,枚举(Enum)是一种非常合适的数据类型。Rust中的枚举不仅可以定义一组可能的值,还可以携带数据,使得代码更具表达力和安全性。在Rust中,定义枚举非常简单。// 定义一个枚举类型Direction,表示四个可能的方向North, // 北South, // 南East, // 东West, // 西在这个例子中,我们定义了一个Direction枚举,包含四个可能的方向。

2024-09-04 22:19:29 974

原创 使用 VS Code 正则表达式批量替换:将 `this.xxx` 改为 `xxx.value`

在某些 JavaScript 或 TypeScript 项目中,可能会有大量使用 关键字的代码。当我们需要将这些代码迁移到其他框架(例如 Vue 3 的组合式 API)时,可能需要将 的用法改为 的形式。这种情况下,正则表达式替换将显得尤为高效。首先,确保你的 VS Code 已经安装并打开了需要进行替换的代码文件。你可以通过以下快捷键打开查找和替换面板:在查找输入框的右侧,你会看到一个带有“.*”的图标。点击这个图标以启用正则表达式功能。启用后,VS Code 将允许你使用正则表达式进行搜索和替换。

2024-09-04 18:23:34 939

原创 【Rust】005-Rust 结构体

/ 定义一个元组结构体,用于表示二维向量// 为Vector2D实现Add特征,实现向量相加功能// 向量1// 向量2// 向量相加println!// 定义一个结构体 Rectangle,用于表示矩形width: u32, // 矩形的宽度,类型为 u32height: u32, // 矩形的高度,类型为 u32// 为结构体 Rectangle 实现方法// 定义一个方法 area,用于计算矩形的面积。

2024-09-02 23:07:39 985

原创 使用 @ExtensionMethod 注解简化从 Map<String, Object> 中获取 Integer 和 Long 类型的值

通过使用 Lombok 的注解,我们可以为现有类添加扩展方法,从而简化代码并提高可读性。在本文中,我们创建了一个实用的工具类MyMapUtils,并使用将其方法作为的扩展方法使用,使得从 Map 中获取特定类型的值变得更加简单和直观。这种方法不仅减少了代码冗余,还提高了代码的可维护性,是我们在日常开发中可以考虑采用的一种技巧。

2024-08-25 12:18:23 473 1

原创 Java对象转换器:实现多类型转换为Integer和Long

类是一个工具类,旨在通过使用Map和Function接口来提供灵活的对象转换机制。它的主要功能是将不同类型的对象转换为Integer和Long,并使用Optional包装结果,以处理转换失败的情况。类通过使用Map和Function接口,提供了一种灵活且可扩展的方式来处理对象到数值类型的转换。通过返回Optional,有效地处理了转换失败的情况,避免了。

2024-08-25 11:22:35 400

原创 掌握 Rust 中的 YAML 魔法:Serde_yaml 使用指南

Serde_yaml 是 Rust 语言中一个用于序列化和反序列化 YAML 数据的库。它以其高性能和灵活性而广受欢迎,特别适用于需要处理 YAML 配置文件的项目。在这篇博客中,我们将探讨 serde_yaml 的基本用法,并提供一些实用的示例代码。有时候,使用自定义结构体来解析 YAML 数据会更加方便和直观。age: u8,// 定义一个 YAML 字符串name: Bobage: 25// 将 YAML 字符串反序列化为 Person 结构体;// 打印反序列化后的结构体。

2024-08-22 22:58:43 1604

原创 【Rust】004-Rust 所有权

本节内容较多,主要包含了三部分的知识:所有权,借用和切片。所有权这套系统是 Rust 内存安全的重要保障。有了这套系统,我们既可以享受不需要手动释放内存的便利,又可以对内存使用有足够的控制,保证内存安全。

2024-08-22 20:50:49 1049

原创 使用 QueryDSL 进行动态查询:`QueryBase` 类及其常用方法

select方法用于指定查询中要选择的字段或表达式。通过 QueryDSL 提供的这些方法,我们可以轻松地构建复杂的动态查询。无论是简单的条件查询、分组聚合,还是分页查询,QueryDSL 都能以类型安全的方式帮助我们实现。希望本文介绍的内容和案例能够帮助你更好地理解和使用 QueryDSL。

2024-08-15 11:12:25 612

原创 使用 QueryDSL 的 BooleanExpression 构建类型安全的查询表达式

在现代应用开发中,与数据库进行交互是不可避免的。传统的 SQL 查询虽然功能强大,但在复杂查询中容易引入错误。为了解决这个问题,QueryDSL 提供了一种类型安全的方式来构建查询表达式,使得查询的构建更加直观和安全。本文将介绍如何使用 QueryDSL 的 Expression 接口及其实现类来构建和操作查询表达式。

2024-08-15 10:06:47 686

原创 深入理解 QueryDSL 的 BooleanBuilder:构建复杂逻辑表达式

是一个无参构造方法,用于初始化一个空的实例。提供了一种灵活且方便的方式来构建复杂的逻辑条件表达式。通过链式调用,开发者可以轻松地组合多个条件,从而生成复杂的查询逻辑。在实际应用中,它常用于构建动态查询条件,根据不同的业务需求生成相应的 SQL 语句。

2024-08-14 18:10:49 1200

原创 探索Java Bean验证:深入理解@Max和@Size注解

Max是一个约束注解,用于验证数值类型的字段或属性的最大值。它确保字段的值不超过指定的最大值。@Size注解用于验证集合、数组、字符串等类型的元素数量或长度。它可以指定允许的最小和最大大小/长度。

2024-08-12 11:21:02 1065

原创 Java 使用 Lombok 的 @ExtensionMethod 注解实现向现有的类添加新的方法

我学习 Flutter 时发现 Dart 从2.7版本开始引入了扩展方法(Extension Methods)。扩展方法允许我们向现有的类添加新的方法,而无需修改原类或创建子类,这对于增强系统库类特别有用。当时我就想 Java 能否实现这种功能,后面也没想到自己实现的策略,直到今天我发现了Lombok的@ExtensionMethod注解!狂喜!Lombok是一个流行的Java库,通过减少样板代码来简化代码编写。其中一个强大的功能就是注解,它可以增强代码的可读性和简洁性。在本教程中,我们将深入探讨。

2024-08-11 13:28:02 415

原创 Hibernate SoftDelete 注解: 实现软删除

在本文中,我们将看到如何使用 Hibernate 的注解来为 JPA 实体启用软删除功能。

2024-08-11 12:44:22 669

原创 使用 Hibernate 实现软删除的最佳方式

如果我们只提供 @Where 子句,就不会有重复的删除子句,但在直接获取时已删除的行会变得可见。在 Hibernate 5.2 之前,只提供 @Where 子句注解已经足够,但在 Hibernate 5.2 中,还需要提供一个自定义 @Loader,以便直接获取也能正常工作。即使它具有与 Post 的 @ManyToOne 关联,也不需要过滤这个关系,因为子实体不能在没有父实体的情况下存在。即使它具有与 Post 的 @OneToOne 关联,也不需要过滤这个关系,因为子实体不能在没有父实体的情况下存在。

2024-08-11 12:40:40 419

原创 如何使用 JPA 和 Hibernate 将 Java Enum 映射到自定义值

默认情况下,Hibernate 使用EnumType来确定是使用 Enum名称还是序数来持久化 Enum 到底层数据库列中。JPA 提供了抽象,帮助我们在希望控制某个基本类型如何在数据库表列中持久化时使用。为了实现使用自定义序数值的目标,我们将使用 Hypersistence Utils 项目中的/*** 初始化构造函数,接受要管理的 Java Enum。* @param enumType 要管理的 Java Enum 类型*/@Override现在,我们需要创建,它扩展。

2024-08-11 12:15:55 386

原创 JSON 提取器:从文本中提取 JSON 内容的实用工具

在现代软件开发中,JSON(JavaScript Object Notation)是一种广泛使用的数据交换格式。无论是前端与后端的通信,还是配置文件的存储,JSON 都扮演着重要的角色。有时,我们需要从文本中提取 JSON 格式的数据,而这可能并不像看上去那么简单。今天,我将分享一个简单而有效的 Java 工具类,它可以帮助我们从文本中提取 JSON 格式的内容。

2024-08-10 22:17:33 1817

原创 JavaScript中的字符串与数字转换

在JavaScript编程中,字符串与数字之间的转换是一个基础而又常见的操作。无论是处理用户输入、数据计算还是格式化输出,掌握这些转换技巧都能帮助开发者更高效地编写代码。本篇博客将详细介绍字符串与数字转换的多种方法,探讨其使用场景及最佳实践。掌握JavaScript中字符串与数字的转换方法是编程中的基本技能。通过合理选择转换方法,开发者可以编写出更健壮和易于维护的代码。在实际应用中,结合具体场景和需求,选择合适的转换方式,以提高代码的效率和可靠性。希望本篇博客能帮助读者更好地理解和应用这些转换技巧。

2024-08-09 09:28:55 995

原创 Vue3响应式高阶用法之`shallowReadonly()`

是 Vue3 提供的一个响应式 API,用于将对象的顶层属性设为只读。与readonly不同的是,只会影响对象的顶层属性,不会递归地使对象内部的属性也变为只读。是 Vue3 中一个非常实用的响应式 API,适用于需要部分只读状态的场景。通过将对象的顶层属性设为只读,可以有效防止误操作,同时允许内部属性的自由修改,提供了灵活性和性能优化的双重优势。希望本文能帮助你更好地理解和使用,提升你的 Vue3 开发体验。

2024-07-27 14:32:29 501

SpringBoot项目阶段源码2020年12月7日

条件查询分页、添加讲师、查询讲师、修改讲师、统一异常处理项目源码:1、创建查询对象;2、在TeacherService中编写条件查询分页方法;、在实现类TeacherServiceImpl中编写方法体;4、在Controller中实现具体方法;

2020-12-07

SpringMVC01.zip

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等。这是SpringMVC入门程序。

2020-08-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除