自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

写下自己的成长。

  • 博客(68)
  • 资源 (1)
  • 收藏
  • 关注

原创 (2)探索 Spring AI - 实现聊天对话

Spring AI BOM 声明了特定版本的 Spring AI 所使用的所有依赖关系的推荐版本。相反,使用的 BOM 版本将决定所使用的依赖版本。流式聊天功能使得我们的应用能够提供更加动态和互动的用户体验,就像在使用 ChatGPT 时所体验到的那样。TIP:上面的 OpenAI API Key 我配置到了本地环境变量中,这也是一种推荐的做法来保证 API Key 不会泄漏。集成到 Spring Boot 应用中后,框架自动配置了一组 AI 客户端,使我们能够轻松地在应用中加入智能对话等功能。

2024-05-01 18:07:58 1045

原创 (1)探索 SpringAI - 基本概述

翻译:系统正确解释外部数据的能力,从这些数据中学习的能力,以及通过灵活的适应利用这些学习来实现特定目标和任务的能力。人工智能的发展经过了几个重要阶段,从早期的概念和实验室研究,到如今的广泛应用和商业化,AI 已成为科技领域的一个重要分支。起初,人们对于机器能否模拟人类智能持怀疑态度,但随着技术的不断进步,这些早期的概念如今已变为现实。在20世纪50年代和60年代,人工智能作为一个学术概念开始形成,那时的研究者设想通过编程来模拟人类思维。

2024-05-01 18:06:37 1043

原创 Docker 安装 Mongo

在你的宿主机上创建必要的目录来存储 MongoDB 的数据和配置文件。这样做可以保证即使容器被删除,数据也能得到保留。此外,为了增强安全性,你可以配置更复杂的认证选项,例如使用 X.509 证书等。这个文件可以用来设置 MongoDB 的运行参数,比如绑定的 IP 地址、端口号和安全设置等。:如果你的服务器有防火墙,请确保开放 27017 端口,以便可以远程访问 Mongo。使用以下命令来启动 MongoDB 容器,映射数据和配置文件到宿主机指定的目录。的 MongoDB 配置文件,并保存在。

2024-04-21 20:32:20 369

原创 Linux 安装 NVM + Node

使用 curl 或 wget 安装 NVM。,并将脚本添加到 shell 配置文件中 (TIP:安装脚本会克隆 NVM 仓库到。

2024-04-21 11:45:17 288

原创 Linux 安装 JDK

确保系统包列表是最新的。这将帮助确保安装的是最新版本的软件包。

2024-04-21 11:16:38 381

原创 Linux - Docker 安装 Nacos

如果你的服务器有防火墙,请确保开放 8848 和 9848 端口,以便可以远程访问 Nacos 控制台。:上述步骤是在单机模式下安装 Nacos。如果需要在生产环境中部署 Nacos 集群,请参考。:为了防止数据丢失,建议将 Nacos 的数据目录映射到宿主机的持久化存储中。,你应该能看到 Nacos 控制台的登录页面。默认的用户名和密码都是。

2024-04-21 11:07:07 885

原创 Linux 安装 Docker +Docker Compose + cucker/get_command_4_run_container

TIP:下面演示的 Linux 系统为 CentOS 7.9。

2024-04-21 10:56:22 444

原创 SpringBoot 集成分布式任务调度 XXL-JOB【保姆级上手】

XXL-JOB 作为一款轻量级的分布式任务调度平台,凭借其高效、易用、可扩展的特性,已经在众多知名企业中获得了广泛的应用和认可。

2024-03-31 15:16:52 823

原创 MyBatis 逆向工程 + 插件定制,一次性带你搞明白

MBG 逆向 + 自定义插件 + Example 操作 + ...

2024-03-29 15:43:13 788

原创 CentOS 7 定时任务 + Shell 脚本自动备份 MySQL 数据库(一次 Halo 建站数据库丢失的教训)

最近在通过 halo 搭建个人博客的是否,第二天醒来惊讶的发现自己的数据库没了!于是经过左思右想决定进行一些兜底处理,避免灾难的二次发生。

2024-02-24 15:50:36 1390 2

原创 Maven 跳过单元测试

常见的 Maven 跳过单元测试方法

2024-02-15 17:36:12 760

原创 日常开发对象判空 + 避免空指针异常

开发常用对象判空技巧

2024-02-08 23:41:37 864

原创 VSCode 插件集

自己用的一些 VS 插件。

2024-01-31 11:48:46 1299

原创 Spring Boot 集成 API 文档 - Swagger、Knife4J、Smart-Doc

OpenAPI 规范(OAS),前身为 Swagger 规范,是一个强大的定义 RESTful API 属性的开放源规范。这个规范为 API 的路径、参数、响应、HTTP 方法等提供了一套详细的指南,从而标准化了 API 的描述方式。

2024-01-21 14:46:06 1241

原创 Spring Boot 整合支付宝实现在线支付方案(沙箱环境)

支付宝开放平台带来了突破性的便利——通过沙箱环境,个人仅需拥有支付宝账号,就能够测试并实现支付功能,大大简化了以往繁琐的步骤。

2024-01-13 18:21:44 1713 1

原创 mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::......

更换 MySQL 版本、更换更通用的 SQL 内置函数、Google …进一步检验:换了一个基本查询试试会不会出现同样的问题,结果没啥卵用。描述:执行 SQL 没问题,应用代码报错 ⬇️。Why,望有缘人解惑。

2023-12-18 17:44:15 497

原创 送你一篇 MacOS 命令手册

MacOS 命令手册

2023-11-26 13:14:39 1453

翻译 送你一份 Git 命令清单

Git 命令清单

2023-10-04 10:20:14 139

原创 SpringBoot 自动配置实现原理:这一次一定要整明白!

你曾经想过为什么在搭建一个 Spring Boot 项目时,它似乎自带一种魔法,能够为你自动完成大量的配置工作吗?那么,这一切是如何做到的呢?今天,我们来揭开这背后的秘密。

2023-09-27 23:37:39 270

原创 Spring Security 用了那么久,你对它有整体把控吗?

在本篇文章中,我们将探索 Spring Security 在基于 Servlet 的应用中的高级架构。这为我们后续的认证(Authentication)和授权(Authorization)内容打下坚实的基础。

2023-09-22 12:21:12 285

原创 重学 HashMap

HashMap 你真的了解吗?

2023-09-21 18:56:02 118

原创 Spring Security 超详细整合 JWT,能否拿下看你自己!

文章目录1.JWT 入门1.1 JWT 概念1.2 JWT 应用场景1.3 为何选择 JWT基于 Session 的传统认证基于 JWT 的认证1.4 JWT 的结构标头(Header)载荷(Payload)签名(Signature)1.5 RBAC (Role-Based Access Control)1.6 JWT 基本使用添加依赖生成 Token解析 Token2.Security 整合 JWT2.1 单独抽离 Security 模块添加相关依赖JWT 工具类JWT 相关配置JWT 登录授权过滤器自定

2023-08-31 18:41:11 5393 4

原创 排序算法 - 快速排序(Lomuto and Hoare 分区)

一次弄明白给予 Lomuto 和 Hoare 分区方案的快速排序。

2023-08-24 21:00:27 1303

原创 Lombok 的正确使用姿势

在 Java 开发领域中,Lombok 插件已经成为一个非常流行的代码库。该插件让 Java 开发更加便捷、高效,因此提高了开发者的生产力。

2023-06-01 22:07:43 771 1

原创 MyBatis - 高级查询

MyBatis 允许你在几乎任何时候都使用自定义的来处理 SQL 语句的参数绑定以及结果映射。如果你有一个特定的数据类型需要做一些特殊的处理,你可以编写自定义的。

2023-06-01 20:04:50 1155

原创 MyBatis - MyBatis Generator

MyBatis Generator 是一款针对 MyBatis 或 iBATIS 设计的代码生成器,由 MyBatis 官方提供。它可以生成 MyBatis 的 Java 实体类、mapper.xml 文件以及对应的 Mapper 接口,极大地减少了开发人员手写 SQL 语句和映射实体类的工作量,提高了开发效率。

2023-06-01 20:04:08 1135

原创 MyBatis - CRUD 操作

从早期的 iBatis 开始,XML 的功能就已经十分齐全,而注解的方式则是后来才出现的。Spring Framework 为测试提供了强大的支持,在涉及数据库操作时,为了保证每个测试的运行不会对其他测试产生影响,它可以直接回滚测试中的操作,这也是默认的逻辑。在 MyBatis 中,我们对实体类没有什么要求,也无须添加特定的注解,各种映射都是通过 Mapper 接口来定义的。测试类可以使用同一套,但是需要进行一些修改,因为自增 ID 肯定不是之前的了,胖友自行进行单元测试。注解,也能达到同样的效果。

2023-06-01 20:03:26 843

原创 MyBatis - 动态 SQL

动态 SQL 是 MyBatis 提供的一个非常强大的功能,它可以让我们在运行时构建 SQL 语句。的 SQL 查询,并在查询中使用了 IF 条件语句。我们可以实现一些循环拼接 SQL 的逻辑,它一般用于循环遍历一个集合,然后将集合中的元素插入到 SQL 语句中,从而生成多条 SQL 语句。上面我们都是默认使用 MyBatis XML 映射的方式进行动态 SQL 的讲解,其实动态 SQL 也支持注解的方式。在上述代码中,我们将根据不同的条件动态构建 SQL 查询语句,从而实现动态 SQL 的效果。

2023-06-01 20:02:40 1613 2

原创 MyBatis - Spring Boot 集成 MyBatis

Spring Boot 官方没有提供 MyBatis Starter,但是 MyBatis 官方提供了 mybatis-spring-boot-starter 一站式启动器。从上面的版本要求,我们们也不难发现,在 Spring Boot 3.x 发布后,MyBatis Starter 也进行了兼容性适配,在 Spring Boot 3.x 项目中我们可以使用 mybatis-spring-boot-starter 3.x 的版本。,只需要和配置其它 Spring 数据库连接一样配置它就可以了。

2023-06-01 20:02:31 1139

原创 MyBatis - 简介

MyBatis 是一款优秀的 Java 持久化框架,它不同于 Hibernate 等 ORM 框架,MyBatis 更像是一款数据持久化的工具,而不是针对整个数据库,像 Hibernate 一样,自动创建对象关系映射。因此,MyBatis 在一些数据表结构比较复杂,或者需要很多特殊的 SQL 查询的应用场景下表现更加出色。MyBatis 支持自定义 SQL、存储过程以及高级映射。它免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。

2023-06-01 20:01:27 430

原创 Java 集合 - Collection 工具类

是 Java 提供的一个功能强大的工具类,专门用于处理各类集合,如 Set、List 和 Map。该工具类提供的各类静态方法为我们操作这些集合带来极大的便利。

2023-05-31 11:35:41 566

原创 Java 集合 - Set 接口

Set接口的定义非常简单。它本质上是一个Collection,但是要求该集合不能有重复的元素。换句话说,如果尝试将一个元素添加到Set中,而该元素已经存在于Set中,那么add方法将返回false,并且Set本身不会改变。Java为SetHashSet: 基于哈希表的Set实现,它不保证集合的迭代顺序;尤其是它不保证该顺序恒久不变。: 哈希表和链表实现的HashSet,具有可预知迭代顺序。TreeSet: 基于树(红黑树)的Set实现,按照元素的自然顺序进行排序,或者根据创建集合时提供的。

2023-05-27 20:01:07 1040

原创 Java 集合 - Map 接口

在日常生活和编程中,我们常常需要处理一种特殊的关系:一一对应的关系,如 IP 地址与主机名,身份证号与个人信息,系统用户名与系统用户对象等。这种关系被称为映射,在 Java 中,我们使用Map<K, V>接口来表达和处理这种关系。是一个在 Java 集合框架中用于存储键值对的接口。键和值是一一对应的,键用于唯一标识一个元素,值则是与该键关联的数据。通过键,我们可以非常快速地找到其对应的值,这就是映射的核心特性。相比于接口,Map<K, V>接口有着根本的区别。接口的实现类,如List<E>和Set<E>

2023-05-27 20:00:35 13692

原创 Java 集合 - Queue 接口

特性 / 类型LinkedListArrayDeque底层数据结构双向链表动态数组(环形)堆(Heap)顺序按照自然排序或比较器排序允许null元素是否否多线程安全否否否主要功能队列操作、栈操作、列表操作队列操作、栈操作优先级队列操作LinkedList:它是一个基于双向链表的实现,每个元素都包含前向和后向的链接,所以它的插入和删除操作通常都很快。它实现了List接口和Deque接口,因此它不仅可以用作队列,还可以用作栈或双端队列。LinkedList允许插入。

2023-05-27 20:00:19 1769

原创 Java 集合 - List 接口

在 Java 中,接口是 Java 集合框架中的一个接口,它继承自Collection接口,是单列集合的一个重要分支。List 接口的常见实现类包括ArrayListLinkedList和Vector。List有序性List中的元素是按照插入顺序排序的,因此可以很容易地遍历List中的元素。对于ArrayList,底层采用数组来存储元素,因此可以进行随机访问;对于LinkedList,底层采用链表来存储元素,因此只能进行顺序访问。可重复性List中允许出现重复元素。

2023-05-27 19:58:05 2179

原创 Java 集合 - 集合框架概述

例如,ArrayList 的迭代器实现中,指针指向当前元素的下标,每次调用 next() 方法时,返回当前下标对应的元素,并将下标加一。而 LinkedList 的迭代器实现中,则需要保存一个指向当前节点的引用,每次调用 next() 方法时,返回当前节点的值,并将指针指向下一个节点。它主要指的是,当多个线程同时修改一个集合时,如果一个线程正在通过迭代器遍历集合,而另一个线程修改了集合(如添加、删除或修改元素),那么正在遍历的线程会立即抛出。通常,在存在不同步的并发修改时,不可能对其进行坚决的保证。

2023-05-27 19:56:43 1758

原创 POE:性价比最高的 AI 整合网站

Poe 是一款同时整合了 ChatGPT、Sage、GPT-4、Claude+、Claude-instant 和 NeevaAI 的网站,也是目前笔者使用体验很不错的一个网站。以上的机器人除了 GPT-4(每天一次)和 Claude+(每天三次) 有使用次数限制以外,其余机器人均免费无限使用。

2023-05-09 17:07:56 34937 12

原创 Spring Boot 3.0.x 自动配置文件加载原理

本文我们基于 Spring Boot 3.0.6 一起看看 Spring Boot 自动配置文件加载的原理。

2023-05-02 19:36:31 1187

原创 重磅插件 - Bito – GPT-4

Bito – GPT-4 & ChatGPT to write code, explain code, create tests 是一款 AI 插件,Bito 通过将 GPT-4 和 ChatGPT 引入 IDE 和 CLI,帮助开发人员显着加快他们的影响力。Bito 使用 OpenAI 的模型,你不必拥有 OpenAI 密钥。Bito 每天可以为您节省一个小时!Bito AI 可以轻松编写代码、理解语法、编写测试用例、解释代码、评论代码、检查安全性,甚至解释高级概念。

2023-04-23 11:54:02 9032 24

原创 Spring核心-IoC控制反转详解 (典藏版)

控制反转 (Inversion of Control, IoC) 与面向切面编程 (Aspect Oriented Programming,AOP)是 Spring Framework 中最重要的两个概念。在本篇博客中,笔者将介绍 Spring Framework 中的 IoC 容器及其背后的主要思想。IoC(控制反转)是一种编程思想,通过它可以更加灵活和可控地管理代码之间的关系,而实现 IoC 这一思想的一个最好体现就是依赖注入(dependency injection,DI)。传统的编程方式中,对象需要

2023-04-21 16:56:09 1360

空空如也

空空如也

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

TA关注的人

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