自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 Vue项目打包上线

Nginx 是一个高性能的开源HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。它在设计上旨在处理高并发的请求,是一个轻量级、高效能的Web服务器和反向代理服务器,广泛用于提供静态资源、负载均衡、反向代理等功能。7.4 使用浏览器访问服务器的ip即可。

2024-07-02 15:32:57 525

原创 Spring Ai入门

SpringAI是一个AI工程应用框架,旨在将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域。它推广使用Plain Old Java Object(POJO)作为AI应用程序的构建块,从而为Java开发者提供了一种更简洁的方式与人工智能进行交互。SpringAI的推出被认为是Java开发领域的一大福音,因为它结合了Spring生态系统的设计原则和模块化的概念,降低了接入大型语言模型(LLM)的学习成本。(1)使用chatClient。(2)使用chatModel。

2024-06-25 09:29:46 225

原创 AOP(面向切面编程)

AOP是OOP(面向对象编程)的延续,通过AOP可以实现对业务逻辑中的不同部分进行隔离,降低耦合,提高程序的可重用性和开发效率。此外,AOP也被视为一种控制反转(Control Inversion)的技术,因为它允许开发者在不修改现有代码的情况下,通过定义切面(Aspect)来横切关注点,从而实现对这些关注点的解耦和模块化处理。:AOP 的引入使得关注点的具体实现与业务模块相对独立,减少了模块间的直接依赖关系,降低了系统各部分之间的耦合度。(2)实现接口中的所有方法。(1)定义计算器接口。

2024-06-23 20:46:15 357

原创 面向对象设计原则

面向对象设计原则是一组指导原则,用于指导如何进行良好的面向对象软件设计。

2024-06-23 11:07:19 1386

原创 Elasticearch的DSL查询

查询的DSL是一个大的JSON对象,包含下列属性:query:查询条件from 和 size:分页条件sort:排序条件highlight:高亮条件。

2024-06-02 15:18:16 651

原创 SpringBoot集成Elasticsearch

批量新增文档,就是给每个文档创建一个 IndexRequest 请求,然后封装到 BulkRequest 中,一起发出。BulkRequest 本身其实并没有请求参数,其本质就是将多个普通的 CRUD 请求组合在一起发送。批量删除,就是创建N个 DeleteRequest 请求,然后封装到 BulkRequest,一起发出。(1)全量修改与新增的API完全一致,如果新增时ID已经存在则修改,如果ID不存在,则新增。全量修改:本质是先根据id删除,再新增。局部修改:修改文档中的指定字段值。

2024-05-30 10:02:12 111

原创 Elasticsearch入门

倒排索引是一种数据结构,它将文档中的每个词映射到包含该词的所有文档的列表中,而不是将文档映射到词的列表中。词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是。与正向索引相反,倒排索引先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。:如果根据id删除时,id不存在,第二步的新增也会执行,也就从修改变成了新增操作了。

2024-05-30 09:38:27 631

原创 Redis内存回收机制

Redis之所以性能强,最主要的原因就是基于内存存储。然而单节点的Redis其内存大小不宜过大,会影响持久化或主从同步性能。当内存达到上限,就无法存储更多数据了。因此,Redis内部会有两套内存回收的策略:内存过期策略内存淘汰策略。

2024-05-27 15:08:40 584

原创 Java异常机制

Java 中的异常是在程序执行期间发生的问题,它们打破了正常的程序流程。了解异常是编写健壮的 Java 代码的关键部分之一。

2024-05-21 21:50:38 674

原创 排序算法总结

插入排序(Insertion Sort)选择排序(Selection Sort)快速排序(QuickSort)希尔排序(Shell Sort)堆排序(Heap Sort) 归并排序(Merge Sort) 基数排序(Redix Sort)总结

2024-05-20 20:46:01 331

原创 Lambda表达式与方法引用

在这个例子中,forEach 方法接受一个 Consumer 接口的实现作为参数,该接口有一个 void accept(T t) 方法,Lambda 表达式 name -> System.out.println(name) 就是实现了这个方法的代码块,用来打印列表中的每个元素。函数式接口是只包含一个抽象方法的接口,例如 java.util.function 包中的 Predicate、Consumer、Function 等接口。Lambda 表达式可以使用这些接口来创建函数式接口的实例,从而简化代码。

2024-05-16 20:20:43 418

原创 SpringBoot集成RabbitMQ

6、对于JSON格式消息的接收,需要创建一个用于JSON转换的Bean。2、配置RabbitMQ的基本信息。4、创建生产者来向消息队列中发送消息。只需指定转换器就可以接收消息了。5、创建消费者来接收消息。

2024-05-15 17:45:16 108

原创 RabbitMQ 的介绍及使用

消息队列是一种用于在应用程序之间传递消息的通信机制。它通常用于解耦生产者和消费者之间的关系,使得它们可以异步地交换数据,从而提高系统的可伸缩性、可靠性和性能。常见的消息队列系统包括 RabbitMQ、Apache Kafka、Amazon SQS(Simple Queue Service)等。

2024-05-15 17:09:13 264

原创 OAuth 2.0 四种授权模式

OAuth 2.0定义了四种授权模式(Authorization Grant Types),用于在客户端和服务提供者之间进行身份验证和授权。这些授权模式针对不同的应用场景和安全需求。虽然这种模式比较简便,但是已经失去了用户验证的意义,更适用于服务内部调用的场景。

2024-05-13 13:45:00 390

原创 ​​​​Redis与分布式

在主从复制中,有一个主节点(master)负责接收写操作和更新数据,而一个或多个从节点(slave)则负责从主节点复制数据并保持与主节点的同步。在哨兵投票决定新的主节点之后,它们会发送命令给被选中的从节点,使其成为新的主节点。当一个哨兵发现主节点失效(例如,无法响应PING命令)时,它会开始进行一系列的投票流程,与其他哨兵共同决定哪个从节点应该晋升为新的主节点。主从复制可以提高系统的可用性和数据安全性,因为即使主节点宕机,从节点仍可以继续提供读取服务,并且在主节点恢复后可以快速进行故障切换。

2024-05-10 21:36:11 1811

原创 IoC 与 DI

当谈论到软件开发和设计模式时,"IoC" 和 "DI" 是两个经常被提及的概念。它们常常会一起出现,因为它们之间有着密切的关联。IoC(Inversion of Control)控制反转: 控制反转是一种软件设计原则,其核心思想是将某些活动的控制权从程序本身转移到框架或容器中,从而使得组件之间解耦合,降低耦合度,提高灵活性和可维护性。通俗的说,控制反转就是将原本由程序员直接调用的控制权交给容器或者框架来管理。

2024-05-07 11:09:19 1247

原创 红黑树(Red Black Tree)

相比于平衡二叉树,红黑树通过不严格平衡和改变颜色就能在一定程度上减少旋转次数,这样的话在一定程度上能够提升整体的性能,但是在插入结点时需要同时考虑变色和旋转两个操作。红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。红黑树与AVL树的比较。

2024-05-06 17:49:18 186

原创 SpringBoot整合Redis

默认连接本地的Redis服务器,并使用0号数据库。

2024-05-05 11:15:00 159

原创 Redis三大缓存问题及其解决方案

缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。缓存雪崩是指因为某些原因导致缓存中大量的数据同时失效或过期,导致后续请求都落到后端存储上,从而引起系统负载暴增、性能下降甚至瘫痪。缓存击穿是指在高并发访问下,某个热点数据失效后,大量请求同时涌入后端存储,导致后端存储负载增大、响应时间变慢,甚至瘫痪。解决缓存击穿的两种常见方案是使用互斥锁和逻辑过期。

2024-05-02 07:00:00 35

原创 Git版本控制

Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。一般情况下每个开发者的电脑上都有一个本地仓库,由大家共同向远程仓库去推送版本迭代信息。

2024-04-30 15:30:00 246

原创 Anaconda使用命令

Anaconda 是一个用于科学计算的Python发行版,提供了大量的常用库和工具。

2024-04-29 09:15:00 258

原创 Linux常用命令

1987 年,安德鲁·塔能鲍姆教授开发了 MINIX,这是一个类 UNIX 操作系统,用于教学目的。MINIX 的设计简单且模块化,使其成为学习操作系统原理的宝贵工具。1991 年,芬兰学生 Linus Torvalds 开始开发 Linux 内核,作为 MINIX 的替代品。Linux 内核是一个免费和开源的操作系统内核,一经发布,便引起了社会强烈的反响,在大家的努力下,于1994年Linux的1.0版本正式发布。结合当时的GNU运动,最终合在一起称为了GNU/Linux,以一只企鹅Tux作为吉祥物。

2024-04-28 12:17:27 626

空空如也

空空如也

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

TA关注的人

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