0%

Knife4j快速入门

1 概述

Knife4j是一个用于生成和展示API文档的工具,同时它还提供了在线调试的功能,下图是其工作界面。

了解

  • Knife4j有多个版本,最新版的Knife4j基于开源项目springdoc-openapi,这个开源项目的核心功能就是根据SpringBoot项目中的代码自动生成符合OpenAPI规范的接口信息。
  • OpenAPI规范定义接口文档的内容和格式,其前身是Swagger规范。
    阅读全文 »

Redis快速入门

1 Redis概述

  1. Reids定义

    Redis(Remote Dictionary Server)是一个基于内存的键值对存储系统,常用作缓存服务。由于Reids将数据都保存在内存中,因此其读写性能十分惊人,同时,为保证数据的可靠性,Redis会将数据备份到硬盘上,用于故障发生时的数据恢复。

  2. Redis特点

    • 高性能:Redis主要将数据存储在内存中,因此读写速度非常快,适合对速度有较高要求的场景。
    • 支持多种数据结构:Redis中键值对的值(Value)支持多种数据结构,如字符串、哈希表、列表、集合等,这使得它可以应用于多种不同的场景。
    • 持久化:Redis可以通过定期快照或者实时记录写操作日志的方式将内存中的数据持久化到硬盘,确保数据在重启后不会丢失。
    • 灵活的数据过期策略:可以为每个键设置过期时间,一旦过期,Redis会自动删除。
  3. Redis应用场景

    Redis最为常见的一个应用场景就是用作缓存,缓存可以显著提升访问速度,降低数据库压力。

    阅读全文 »

MinIO快速入门

1 MinIO核心概念

下面介绍MinIO中的几个核心概念,这些概念在所有的对象存储服务中也都是通用的。

  • 对象(Object)

    对象是实际的数据单元,例如我们上传的一个图片。

  • 存储桶(Bucket)

    存储桶是用于组织对象的命名空间,类似于文件夹。每个存储桶可以包含多个对象。

  • 端点(Endpoint)

    端点是MinIO服务器的网络地址,用于访问存储桶和对象,例如 http://192.168.10.101:9000

    注意:

9000 为MinIO的API的默认端口,前边配置的 9001 以为管理页面端口。

  • Access Key 和 Secret Key

    Access Key是用于标识和验证访问者身份的唯一标识符,相当于用户名。

    Secret Key是与Access Key关联的密码,用于验证访问者的身份。

    阅读全文 »

MyBatis Plus快速入门

1、概述

MyBatis-Plus(简称 MP)是一个MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。其突出的特性如下:

  • 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
  • 强大的 CRUD 操作:内置通用 Mapper、通用 Service,提供了大量的通用的CRUD方法,因此可以省去大量手写sql的语句的工作。
  • 条件构造器:提供了强大的条件构造器,可以构造各种复杂的查询条件,以应对各种复杂查询。
  • 内置分页插件:配置好插件之后,写分页等同于普通 List 查询,无需关注分页逻辑。

下面通过一个简单案例快速熟悉MyBatis Plus的基本使用

阅读全文 »

为什么使用全局异常处理

在开发时,需要对可能有异常的Controller层方法增加try-catch逻辑,而使用Spring MVC提供的全局异常处理功能,可以将所有处理异常的逻辑集中起来,进而统一处理所有异常,可以使代码更容易维护。
具体用法如下,详细信息可参考官方文档

阅读全文 »

1. Linux文件系统目录结构

理解和熟悉Linux系统的文件系统目录结构,对于有效的管理和定位文件十分重要。Linux文件系统的目录结构如下图所示:

image-20250122170306448

其中各目录的作用如下表所示

目录 说明 作用
/ 根目录 根目录是整个文件系统的起点,所有其他目录和文件都位于根目录之下。
/home 家目录 每个用户的个人目录都位于这个目录下,通常以用户名命名。例如,用户john的主目录路径为/home/john
/root root用户的家目录 保存root用户的个人数据
/boot 引导文件所在目录 保存系统启动时所需的各种文件
/usr User System Resources的简写,说法不唯一 存放用户可用的软件和程序文件,也包括了一些共享的数据和库文件。
/bin binary的简写 存放系统的基本命令(如ls、cp等)和其余可执行文件。
/sbin system binary的简写 存放系统管理和维护方面的二进制文件。
/etc etcetera的简写 存放系统的配置文件,包括各种程序的配置文件和系统的全局配置文件。
/var variable的简写 存放系统运行时产生的可变数据,如日志文件、数据库文件等。
/opt optional的简写 存放一些可选的软件包,通常由用户自行安装。
/tmp temporary的简写 存放临时文件,系统会定期清理该目录
阅读全文 »

一、Spring Web MVC 与 Spring Bean 注解

Spring Web MVC 注解

@RequestMapping

@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。Spring MVC和Spring WebFlux都通过RquestMappingHandlerMappingRequestMappingHndlerAdapter两个类来提供对@RequestMapping注解的支持。 @RequestMapping注解对请求处理类中的请求处理方法进行标注;@RequestMapping注解拥有以下的六个配置属性:
  • value:映射的请求URL或者其别名
  • method:兼容HTTP的方法名
  • params:根据HTTP参数的存在、缺省或值对请求进行过滤
  • header:根据HTTP Header的存在、缺省或值对请求进行过滤
  • consume:设定在HTTP请求正文中允许使用的媒体类型
  • product:在HTTP响应体中允许使用的媒体类型
提示:在使用@RequestMapping之前,请求处理类还需要使用@Controller或@RestController进行标记 下面是使用@RequestMapping的两个示例:

@RequestMapping还可以对类进行标记,这样类中的处理方法在映射请求路径时,会自动将类上@RequestMapping设置的value拼接到方法中映射路径之前,如下:

@RequestBody

@RequestBody在处理请求方法的参数列表中使用,它可以将请求主体中的参数绑定到一个对象中,请求主体参数是通过HttpMessageConverter传递的,根据请求主体中的参数名与对象的属性名进行匹配并绑定值。此外,还可以通过@Valid注解对请求主体中的参数进行校验。 下面是一个使用@RequestBody的示例:

@GetMapping

@GetMapping注解用于处理HTTP GET请求,并将请求映射到具体的处理方法中。具体来说,@GetMapping是一个组合注解,它相当于是@RequestMapping(method=RequestMethod.GET)的快捷方式。 下面是@GetMapping的一个使用示例:

阅读全文 »