- 博客(406)
- 收藏
- 关注
原创 Spring Boot 的 WebClient 实践教程
WebClient 是一个功能强大且灵活的非阻塞 HTTP 客户端,特别适合在高并发和响应式编程场景下使用,是替代传统 RestTemplate 的优秀选择。在实际项目中,通过合理配置(如超时、连接池)和优化(如负载均衡、重试机制),可以显著提高服务间通信的效率和可靠性,降低延迟和资源消耗。同时,结合 Spring WebFlux 提供的响应式编程支持,WebClient 能够更好地应对微服务架构中复杂的通信需求,成为开发现代分布式系统的重要工具。
2024-11-22 14:20:53
4201
2
原创 JS中console对象内部提供调试方法
console.log() 是最常用的输出方法,用于将信息输出到浏览器控制台,通常用于普通的调试信息。用途: 打印普通的消息、变量、对象等。
2024-11-12 12:35:03
534
原创 c语言-教零基础/新手入门
一提到语言这个词语,自然会想到的是像英语,汉语等这样的自然语言,因为它是人和人交换信息不可缺少的工具。而今天计算机普遍了我们生活的每一个角落,除了人和人的相互交流之外,我们必须和计算机交流。就像人类交流依赖自然语言一样,人类与计算机的沟通也需要语言,而编程语言正是这一沟通的桥梁。C语言作为编程语言中的一种,具有独特的语法规则,既赋予了开发者与计算机“对话”的能力,又确保了计算机能够“无条件地”执行指令。这种交流方式包括消息传递和命令执行,和人类沟通的基本要素类似。
2024-11-10 13:09:52
861
原创 c语言中值调用(call by value)方式和引用调用(call by reference)
在C语言中参数传递主要有两种方式:通过值调用(call by value)和通过引用调用(call by reference)。说明:当使用值调用时,函数接收到的是参数值的一个拷贝。任何在函数内部对参数的修改都不会影响到原始变量。说明:通过引用调用时,函数接收到的是参数的地址(指针)。函数内部的修改会影响原始变量。优点:可以直接修改原始数据,适合处理大型数据结构或需要修改的情况。优点:安全,因为原始数据不受影响,适合小型数据类型。
2024-10-27 19:59:17
559
原创 使用 Git LFS(大文件存储)
Git LFS(Large File Storage)是一种扩展 Git 的工具,旨在更有效地管理大文件的版本控制。它通过将大文件的内容存储在 Git 之外来解决 Git 在处理大文件时的性能问题。替换 <your-branch> 为实际的分支名称,例如 main 或 develop。
2024-10-18 13:39:27
829
原创 npm、yarn、pnpm对比
npm是最早的包管理工具,功能全面,但安装速度和磁盘空间使用方面可能不如其他工具。yarn在速度和安全性方面有显著提升,适合需要快速安装和确定性依赖的项目。pnpm在磁盘空间使用和安装速度方面表现优异,适合大型项目或需要节省磁盘空间的项目。选择哪个包管理工具取决于你的具体需求和项目特点。在大多数情况下,npm 和 yarn 是最常用的选择,而 pnpm 则适合对磁盘空间和安装速度有较高要求的项目。
2024-10-01 15:54:45
782
原创 VUE3.5版本解读
在 Vue 3.5 中,自定义元素(Custom Elements)得到了显著的改进,修复了许多与 defineCustomElement API 相关的长期存在的问题,并添加了许多新功能。这些改进使得使用 Vue 创建自定义元素更加灵活和强大。自定义元素的应用程序配置通过选项支持自定义元素的应用程序配置,在 Vue 3.5 中,你可以通过 configureApp 选项来配置自定义元素的应用程序。这使得你可以在定义自定义元素时进行更细粒度的配置。// 组件选项</div>',// 配置应用程序。
2024-10-01 13:24:42
2263
原创 Elasticsearch学习笔记(3)
Elasticsearch(ES)官方提供了多种语言的客户端库,用于与Elasticsearch进行交互。这些客户端库的主要功能是帮助开发者更方便地构建和发送DSL(Domain Specific Language)查询语句,并通过HTTP请求与Elasticsearch集群进行通信。
2024-10-01 10:05:02
1431
原创 Elasticsearch学习笔记(2)
创建索引: 使用 PUT 请求来定义索引及其映射。创建文档: 使用 POST 请求将数据添加到索引。读取文档: 使用 GET 请求获取特定文档。更新文档: 使用 POST 加上 _update 操作来修改现有文档。删除文档: 使用 DELETE 请求删除指定文档。删除索引: 使用 DELETE 请求删除整个索引。请求方式:POST请求格式:/{索引库名}/_doc/文档id示例:POST /my_index/_doc/1 { "field": "value" }
2024-09-28 22:02:51
1487
1
原创 Elasticsearch学习笔记(1)
创建倒排索引时,对文档分词:在索引阶段,分词器将文档内容分解成一个个的词条(tokens),并将这些词条与文档关联起来,形成倒排索引。倒排索引是搜索引擎的核心数据结构,用于快速查找包含特定词条的文档。用户搜索时,对输入的内容分词:在搜索阶段,分词器将用户输入的查询内容分解成一个个的词条,然后搜索引擎根据这些词条在倒排索引中查找匹配的文档。
2024-09-28 19:56:21
1343
原创 MySQL—表优化
内部临时表:由系统自动创建,用于优化 SQL 查询,例如在连接或去重查询中。用户临时表内存表:使用 Memory 引擎,数据存储在内存中,重启后数据清空,表结构仍然保留。磁盘表:使用 InnoDB 或 MyISAM 引擎,数据存储在磁盘上。特点会话专属:每个临时表只能被创建它的会话访问,不同会话的临时表可以重名。同名冲突:临时表可以与普通表同名,但在同一会话中,操作会优先访问临时表。不显示:使用 SHOW TABLES 命令不会列出临时表。
2024-09-27 22:22:52
1164
原创 MySQL—索引机制详解
MySQL 官方定义索引为一种帮助数据库高效获取数据的结构,其本质是排好序的快速查找数据结构。数据库除了存储表中的数据,还维护一些额外的满足特定查找算法的数据结构,这些数据结构以某种方式指向实际的数据,从而加快查询的速度。这种额外维护的数据结构就是索引。由于索引是在存储引擎层实现的,不同的存储引擎对索引的实现方式可能不尽相同,因此没有统一的索引标准。索引的使用数据库中的索引可以类比为书籍的目录,它指向实际的数据,帮助快速定位。下图展示了索引的工作原理:在图中,左边是一张数据表,包含两列和七条记录。
2024-09-27 17:27:59
1151
原创 Docker学习笔记
Docker是一种开源的应用容器引擎,允许开发者将应用及其依赖打包成一个可移植的容器,从而能够在任何流行的Linux机器上运行。Docker以其轻量级、快速启动和隔离性质著称,可以实现虚拟化,但与传统虚拟机相比,它几乎没有性能开销。Docker使用沙盒机制,确保不同容器之间相互独立,避免了系统间的干扰,这使得应用的部署和管理更加高效。此外,Docker不依赖于特定的编程语言、框架或包装系统,增强了其通用性。小知识:沙盒(Sandbox)沙盒是一种虚拟化技术,常用于计算机安全领域。
2024-09-26 15:30:29
1357
原创 SpringBoot入门 - 配置热部署devtools工具
热部署(Hot Deployment):指的是在不停止应用程序的情况下,将新代码部署到正在运行的应用中。虽然传统的热部署有一定的复杂度和限制,但它的目标是尽可能减少停机时间。热加载(Hot Reload):是热部署的一种实现,通常指在开发过程中对代码的修改能够立即反映到应用中,而无需重启应用。热加载主要用于前端开发和某些后端框架中,它更强调快速反馈和开发效率。Spring Boot DevTools 利用热部署和热加载等机制,极大地提高了开发者的工作效率,减少了等待时间,让开发过程更加顺畅。
2024-09-26 09:52:01
965
原创 微服务-- Gateway服务网关
过滤器的作用是什么?对路由的请求或响应进行加工处理,例如添加请求头。配置在特定路由下的过滤器仅对该路由的请求生效。default-filters 的作用是什么?default-filters 中的过滤器会对所有路由生效。需求参数中是否有authorizationauthorization参数值是否为admin如果满足这两个条件,则放行;否则拦截请求。实现@Order(-1)@Component@Override// 1.获取请求参数。
2024-09-26 09:34:19
1484
原创 初识SpringCloud
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件通过定义IRule实现可以修改负载均衡规则,有两种方式:@Bean。
2024-09-25 20:55:06
1229
原创 Java—注解机制详解
元注解是 Java 中用于注解自定义注解的注解,主要由 Sun 公司提供。它们可以控制自定义注解的应用范围和行为。元注解包括以下四种:@Target用于指定自定义注解可以应用于哪些 Java 元素。其默认值为任何元素。ElementType.CONSTRUCTOR:用于描述构造器。ElementType.FIELD:用于描述成员变量、对象、属性(包括 enum 实例)。ElementType.LOCAL_VARIABLE:用于描述局部变量。ElementType.METHOD:用于描述方法。
2024-09-24 21:23:27
1430
原创 Java—反射机制详解
反射(Reflection)是Java语言中的一种机制,它允许程序在运行时检查和操作类、接口、字段和方法等类的内部结构。通过反射,你可以在运行时获取类的信息,包括类的构造器、字段、方法等,并且可以在运行时动态地创建对象、调用方法、访问或修改字段。
2024-09-24 20:36:23
941
原创 MySQL—触发器详解
触发器是与表有关的数据库对象,在 INSERT、UPDATE、DELETE 操作之前或之后触发并执行触发器中定义的 SQL 语句。触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。使用别名 NEW 和 OLD 来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还只支持行级触发,不支持语句级触发。
2024-09-24 15:37:20
945
原创 带你理解对称加密和非对称加密
对称加密:就像小明和小红共享一个“密码本”,加密和解密速度快,但密钥管理复杂。非对称加密:就像小红使用公开信箱和私人信箱,安全性高,但加密和解密速度较慢。
2024-09-24 15:11:23
766
原创 MySQL—存储过程详解
存储过程和函数是数据库中预先编译并存储的一组SQL语句集合。它们的主要目的是提高代码的复用性、减少数据传输、简化业务逻辑处理,并且一旦编译成功,可以永久有效。
2024-09-24 10:44:58
1543
原创 MySQL—视图详解
视图是一种非常有用的工具,可以帮助简化复杂的查询、提高数据安全性,并确保数据独立性。通过将复杂的查询封装在视图中,用户可以更方便地访问和操作数据,而不必关心底层表的结构和复杂性。视图的创建、查询、修改和删除都有相应的 SQL 语句,可以根据需要灵活使用。
2024-09-23 18:50:29
517
原创 MySQL—多表操作详解
约束:用于对数据库表中的数据进行限定,确保数据的正确性、有效性和完整性。一对一:在任意一个表中建立外键,关联另一个表的主键。一对多:在多的一方建立外键,关联一的一方的主键。多对多:通过中间表来记录两张表之间的多对多关系,中间表包含两个外键,分别关联两张表的主键。
2024-09-23 18:15:56
1662
原创 SpringBoot Aop 详解
AOP是一种编程范式,它通过将横切关注点(如日志、安全、事务等)从主要业务逻辑中分离,降低模块间的耦合度,提升代码的可重用性和可维护性。AOP可以看作是对传统面向对象编程(OOP)的补充,尤其是在处理那些跨多个类的公共逻辑时。前置通知(@Before):在目标方法调用之前执行。适用于执行前的准备工作,如日志记录、权限检查等。System.out.println("目标方法即将被调用");后置通知(@After):在目标方法完成之后执行,不论目标方法是否成功。通常用于清理工作或收尾日志。
2024-09-22 16:40:51
912
原创 更好用的 node 版本管理工具---Volta
Volta是一种管理 JavaScript 命令行工具的轻松方法。特征速度⚡无缝、按项目版本切换跨平台支持,包括 Windows 和所有 Unix shell支持多种包管理器稳定的工具安装——每次节点升级时无需重新安装!用于特定站点定制的扩展钩子为什么选择 Volta?Volta 的任务就是让开你的路。使用 Volta,您只需选择一次 Node 引擎,然后就无需再为此担心。您可以在项目之间切换,而不必手动在 Node 之间切换。
2024-09-22 14:31:25
1080
原创 国内npm源镜像(npm加速下载) 指定npm镜像
国内的 NPM 源镜像可以通过指定不同的镜像地址来加速下载依赖包。以下是几种常用的国内 NPM 源镜像地址和设置方法:常用国内 NPM 源镜像:npm 官方原始镜像:https://registry.npmjs.org/淘宝 NPM 镜像:http://registry.npmmirror.com阿里云 NPM 镜像:https://npm.aliyun.com腾讯云 NPM 镜像:https://mirrors.cloud.tencent.com/npm/
2024-09-22 10:57:14
3567
原创 Java设计模式全面解析
适配器模式是一种有效的设计模式,用于解决由于接口不兼容而导致的类之间无法协作的问题。通过适配器的引入,可以在不改变现有类的情况下,灵活地实现接口之间的适配和转换。
2024-09-22 10:16:50
1153
原创 Java—SPI 机制详解
包含: Java 基础, Java 部分源码, JVM, Spring, Spring Boot, Spring Cloud, 数据库原理, MySQL, ElasticSearch, MongoDB, Docker, k8s, CI&CD, Linux, DevOps, 分布式, 中间件, 开发工具, Git, IDE, 源码阅读,读书笔记, 开源项目...Java常用机制 - SPI机制详解 | Java 全栈知识体系。
2024-09-21 16:30:17
414
原创 Java—池化技术详解
池化技术是一种优化资源管理和提高系统性能的技术,广泛应用于需要频繁创建、使用和销毁资源的场景。其核心思想是预先创建一定数量的资源对象,并将这些对象保存在一个“池”(如线程池、连接池或对象池)中,以供重复使用,而不是每次需要时都重新创建和销毁资源。池化技术的基本概念资源的复用:在池化技术中,某类资源(如线程、数据库连接、对象等)会被集中管理,并且在使用后不会被立即销毁,而是被归还到池中,以便下次使用。这样可以避免频繁创建和销毁资源所带来的性能损耗。
2024-09-21 15:17:02
1310
原创 Java中ArrayList和LinkedList的比较
关于 ArrayList 和 LinkedList 在添加 (add) 和删除 (remove) 操作上的性能比较,传统观点认为由于 ArrayList 需要移动数据,而 LinkedList 只需调整链表指针,因此 LinkedList 更快。然而,实际性能并不是这么简单,两者在不同情况下的表现差异较大,在Java中,ArrayList和LinkedList都是常用的列表实现类,它们都实现了List接口,但在内部工作原理和性能方面有显著差异。
2024-09-20 16:22:44
1130
原创 CSS入门笔记
CSS(Cascading Style Sheets,层叠样式表)是一种用于描述网页外观和布局的样式表语言。它为 HTML 提供了视觉上的美化工具,能够控制网页中元素的展示方式,包括字体、颜色、布局、间距、边框等。层叠:CSS 的“层叠”概念意味着样式规则可以以多种方式应用,它们的优先级会按一定的规则叠加生效。样式可以直接在 HTML 元素中定义,可以在页面的<style>标签中编写,也可以存储在外部的 CSS 文件中。样式。
2024-09-19 21:29:38
1146
原创 git pull的merge和rebase模式
这种方式保留了本地提交的历史,同时在需要时生成一个合并提交(merge commit),用来标记两条历史的合并点。git pull --rebase 会将远程分支的更改“应用”在本地分支的基础上,重新排列本地分支上的提交。1、执行 git pull --rebase: 当我们拉取远程分支时,如果远程分支和本地分支存在冲突,Git 会暂停变基,并提示我们解决冲突。2、解决冲突: Git 会标记出冲突的文件,并且我们可以看到冲突区域。我们需要手动编辑这些文件,选择保留的代码,删除冲突标记,或者合并双方的更改。
2024-09-18 18:53:48
1877
原创 SpringCloud Alibaba 工程搭建详细教程
使用 Spring Cloud Alibaba 的主要目的是解决单体应用的痛点,并利用微服务架构的优势来构建高扩展性、可靠的分布式系统。1. 单体应用的痛点2. 微服务的优势微服务架构通过将单体应用按业务功能划分为多个独立的小模块(微服务),每个服务都有独立的进程、数据库和部署方式。3. Spring Cloud Alibaba 的重要组件Spring Cloud Alibaba 提供了构建微服务架构的核心组件,帮助开发者应对微服务架构中面临的复杂性。
2024-09-15 16:10:33
1541
原创 微服务-- Sentinel的使用
Sentinel:微服务的哨兵随着分布式系统的普及,服务间的可靠性变得比以往更加重要。Sentinel 以“流”为切入点,从多个方面进行研究,为微服务提供可靠性和弹性保障。功能概述:生态系统景观Sentinel 的应用场景和都是用于微服务架构中的服务容错、熔断降级、流量控制等功能的库。
2024-09-14 23:45:16
1853
原创 SpringCloud与SpringBoot的版本的兼容关系
如果您有一个现有的 Spring Boot 应用,并想将 Spring Cloud 添加到该应用中,第一步是确定应使用的 Spring Cloud 版本。您在应用中使用的版本取决于您使用的 Spring Boot 版本。每个发布版本都通过服务版本 (SR) 来添加错误修复和向后兼容功能。确定要使用哪个版本的 Spring Cloud 后,您应使用该发布版本的最新服务版本。现在您知道要使用哪个发布列车以及该发布列车的最新服务版本,您可以将 Spring Cloud BOM 添加到您的应用程序中。
2024-09-14 15:08:32
868
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人