随笔分类 - 后端 / SpringBoot
1
摘要:续https://www.cnblogs.com/echohye/p/18464302 问题 如果我需要获取Hash类型的所有键值,应该怎么获取呢 cmd = "redis.call('HGETALL', key)" 如果是直接使用以上命名,将会直接报序列化失败 (我这里的redis是使用FastJ
阅读全文
摘要:/** * 使用 Lua 脚本批量获取 Redis 键的值 * * @param prefix Redis 中的键列表 * @return 键对应的值的列表 */ public <E> List<E> getAllListValuesByPrefix(String prefix, Class<?>
阅读全文
摘要:Spring Boot 中的参数校验 在 Spring Boot 开发中,通常需要确保前端传递的请求参数符合预期格式,尤其是对于 VO(Value Object)类中的必填字段。如果某个字段未传递或为空值,可能会导致业务逻辑错误。以下是实现必接收参数校验的常用方法。 1. 使用 @Valid 进行自
阅读全文
摘要:场景描述 假设我们要开发一个日志记录器组件,记录日志的方式可能有多种实现:控制台输出、文件输出、甚至是发送到远程服务器。为了实现这个功能,我们可以定义一个 Logger 接口来抽象日志记录功能,然后根据不同的需求创建不同的实现类。 1. 接口注入的实现方式 首先,我们定义一个 Logger 接口和两
阅读全文
摘要:一、依赖注入的背景 在Spring框架中,依赖注入(Dependency Injection, DI)是一种通过外部控制来为类提供其依赖对象的机制。Spring通过IoC容器管理这些依赖,减少了组件之间的耦合度,使得代码更加灵活和易于测试。 二、接口注入 1. 定义 接口注入是指在代码中依赖的是接口
阅读全文
摘要:Java 中的 ThreadLocal 是一个用于实现线程本地存储(Thread Local Storage, TLS)的机制。它可以为每个线程提供独立的变量副本,使得一个线程中的变量不受其他线程中的变量的影响。ThreadLocal 通常用于在多线程环境下避免线程之间共享数据,从而实现线程安全。
阅读全文
摘要:如果想让指定的属性在 Knife4j 文档中不显示为参数,可以通过使用 @Schema(hidden = true) 注解来隐藏该字段。 这样在生成的 API 文档中,这个字段将不会显示为参数。 示例如下: import io.swagger.v3.oas.annotations.media.Sch
阅读全文
摘要:一、背景知识 1. 认证方案概述 有两种常见的认证方案,分别是基于Session的认证和基于Token的认证,下面逐一进行介绍 基于Session 基于Session的认证流程如下图所示 该方案的特点 登录用户信息保存在服务端内存中,若访问量增加,单台节点压力会较大 随用户规模增大,若后台升级为集群
阅读全文
摘要:要在Spring Boot项目中使用MinIO作为对象存储服务,可以使用MinIO的Java SDK来与MinIO进行交互。以下是如何在Spring Boot应用中配置和使用MinIO的详细步骤: 1. 添加MinIO依赖 首先,你需要在项目中添加MinIO的Java SDK依赖。如果使用的是Mav
阅读全文
摘要:Knife4j 4.5.0 @RequestParam改用@RequestPart即可 @Operation(summary = "上传文件") @PostMapping("upload") public Result<String> upload(@RequestPart MultipartFil
阅读全文
摘要:在Spring框架中,枚举类型的转换可以通过自定义的转换器来实现,这样可以方便地在请求参数、表单数据、以及数据库查询中使用枚举类型。 下面是关于Spring枚举转换器的详细介绍和使用方法: 以OrderType排序枚举为例 1. 定义枚举类 BaseEnum.java package com.ech
阅读全文
摘要:Spring Framework 的 BeanUtils 是一个用于简化 Java Bean 操作的工具类。它主要提供了以下功能: 属性拷贝: BeanUtils 可以将一个 Java Bean 的属性值拷贝到另一个 Java Bean 中。这对于需要将对象间的属性进行快速复制时特别有用。常用的方法
阅读全文
摘要:如何在Java项目中使用自定义序列化器处理URL 在Java开发中,处理和序列化URL是一个常见的需求,尤其是在涉及到图像资源时。如果项目需要根据特定条件处理图像URL(如添加前缀),可以自定义一个序列化器来简化这一过程。 本文将介绍如何创建一个自定义的ImgJsonSerializer类,处理单个
阅读全文
摘要:一、 在数据库查询时处理(推荐) 可以直接在SQL查询中使用MyBatis的<if>标签来判断URL是否完整,如果不完整就加上前缀 示例: <select id="selectListByImgTypeAndId" resultType="String"> <![CDATA[ select case
阅读全文
摘要:在一个多模块的 Spring 项目中,父模块通常被定义为一个 pom.xml 文件,包含所有子模块的公共配置、依赖和插件。子模块通过继承父模块的 pom.xml 文件,来共享和管理这些公共依赖和版本信息。 实现步骤 创建父模块(Parent Module): 在父模块的 pom.xml 中,定义所有
阅读全文
摘要:MyBatis-Plus 提供了强大的分页插件,可以方便地实现数据库查询结果的分页。 以下是关于 MyBatis-Plus 分页插件的详细介绍,包括如何配置和使用。 1. 添加依赖 首先,需要在项目中添加 MyBatis-Plus 和分页插件的相关依赖。使用 Maven,在 pom.xml 文件中添
阅读全文
摘要:为什么必须把WebAppApplication启动类放到com.echo目录下才能正确使用到common模块并扫描到mapper,放com.echo.webapp下就扫描不到了 pom.xml <dependencies> <dependency> <groupId>com.echo</groupI
阅读全文
摘要:要将路径值存储在 application.yml 文件中并在 Java 代码中读取,可以使用 @Value 注解来注入这个值。 1. 在 application.yml 中定义变量 首先,在 application.yml 文件中定义你的路径变量,例如: custom: geoPackagePath
阅读全文
摘要:在Spring Boot中解决跨域问题(CORS, Cross-Origin Resource Sharing)有多种方法。 这里介绍几种常用的方法: 方法一:使用全局配置 可以在Spring Boot的配置类中使用WebMvcConfigurer接口来配置全局的CORS策略。 import org
阅读全文
摘要:要在 public static void main(String[] args) 中调用 Service 的方法,需要在 Application 类中手动获取 Spring 容器,并从中获取 Service 的实例。 示例如下: 启动入口程序 @SpringBootApplication publ
阅读全文
1