自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 cursor 打开wsl Ubuntu项目

在使用Windows Subsystem for Linux (WSL)时,如果你想通过Windows上的Visual Studio Code (VS Code)来打开一个Ubuntu项目,可以按照以下步骤操作。如果没有安装,你可以通过Microsoft Store安装WSL和Ubuntu。现在,你可以在VS Code中编辑WSL中的文件了。通过以上步骤,你应该能够顺利地在VS Code中打开和编辑存储在WSL Ubuntu中的项目了。在VS Code中,你需要安装一个扩展来支持WSL。

2026-01-09 14:41:08 196

原创 WSL安装到D盘

方法一:迁移现有WSL系统(适用于已安装在C盘的情况) 如果WSL已安装在C盘,可通过导出和导入方式迁移至D盘。方法二:使用wsl --manage命令(适用于WSL 2) 若系统支持,可直接移动存储路径。方法三:修改注册表设置默认路径(适用于新安装) 通过修改注册表可使新安装的发行版直接存储到D盘。将WSL安装到D盘有多种方法,可根据当前系统状态选择。以下是基于常见场景的步骤。方法四:直接导入离线包(适用于离线环境) 若有离线安装包(如。文件),可直接导入到D盘。

2026-01-06 15:06:40 180

原创 Gin框架整合MinIO对象存储完整指南

本方案整合了MinIO的核心功能与Gin框架的高性能特性,通过分层设计实现了可扩展的文件存储服务。生产环境中建议结合对象生命周期管理、跨区域复制等高级特性,构建完整的云存储解决方案。

2025-11-14 17:41:40 309

原创 智能合约与智能合约开发交互详解

智能合约是区块链技术的核心应用之一,其通过“代码即法律”的理念,解决了传统合约的信任问题,实现了自动化、透明化、不可篡改的合约执行。开发智能合约需遵循“需求分析-技术选型-编码实现-测试-部署”的全流程,注重安全实践(如使用OpenZeppelin库、遵循Checks-Effects-Interactions模式),并通过前端(Web3.js)与后端(Web3.py)的交互实现与用户的连接。随着区块链技术的不断发展,智能合约的应用场景将不断扩大,成为数字经济的重要基础设施。未来,智能合约将向智能化。

2025-11-05 17:34:55 444 1

原创 Web3开发中的前端、后端与合约:角色定位与协作逻辑

智能合约:实现“代码即法律”,消除第三方中介,确保交易的自动化与可信度;前端:连接用户与区块链,让区块链的“复杂逻辑”变得“用户友好”;后端:弥补区块链的局限性,提升DApp的性能与用户体验。

2025-11-05 17:33:18 517

原创 区块链开发与核心技术详解:从基础概念到共识机制实践

Index:区块在链中的位置(高度);Timestamp:区块创建时间戳;:区块包含的交易列表;PrevHash:前一个区块的哈希值(链接);Hash:当前区块的哈希值(由内容计算得出)。Go代码示例import ("fmt""time"// 交易结构体(包含发送方、接收方、金额)// 区块结构体Index int `json:"index"` // 区块高度Timestamp int64 `json:"timestamp"` // 创建时间(Unix时间戳)

2025-11-05 17:28:21 922

原创 spring ai 使用mysql管理会话实现会话记忆

Component@Override// 自定义存储逻辑(如消息加密)@Override// 自定义查询逻辑(如解密、格式转换)

2025-10-21 11:34:19 656 1

原创 Spring AI Alibaba 完全指南:从入门到MCP高级应用

当现有的 MCP 服务不能满足业务需求时,您可以基于 Spring AI Alibaba 创建自己的 MCP 服务。创建 MCP 服务端项目添加依赖:</</</</</</</定义业务工具@Service@Tool(description = "根据类型生成笑话")public String getJoker(@ToolParam(description = "笑话类型") String type) {if ("高雅".equals(type)) {

2025-10-18 14:15:00 772

原创 Spring AI Alibaba 详细代码实战指南

2025-10-18 12:00:00 335

原创 Spring AI Alibaba 由浅入深全面解析:从基础入门到企业级实战

摘要: Spring AI Alibaba是阿里云推出的Spring Boot Starter模块,深度集成通义千问等大模型,显著降低Java开发者构建AI应用的门槛。它提供开箱即用的API封装,支持流式输出、函数调用、RAG等高级功能,并与Spring Cloud Alibaba生态无缝集成。开发者只需简单配置即可快速接入,适用于智能客服、内容生成、数据分析等企业级场景。通过环境变量管理API密钥确保安全性,其极简API设计(如10行代码实现聊天机器人)和流式响应支持,使AI能力更易融入Java应用生态。

2025-10-18 10:45:00 934

原创 SpringAI与MCP深度集成:构建下一代智能应用

MCP(模型上下文协议)是Anthropic推出的AI标准化协议,旨在解决大模型与外部工具间的通信碎片化问题。它通过JSON-RPC 2.0标准化消息格式,支持跨模型工具复用和链式调用。SpringAI框架深度集成MCP,提供声明式开发(@Tool注解)和自动序列化能力,大幅降低开发门槛。本文详细介绍了MCP服务端开发流程,包括两种通信模式(Stdio/SSE)的配置实现,并以天气查询工具为例展示了工具开发方法,最后说明了客户端集成方式。该方案显著提升了AI应用开发效率,实现了工具能力的跨平台复用。

2025-10-15 10:13:32 946

原创 SpringAI 完全指南:为Java应用注入生成式AI能力

SpringAI是Spring官方推出的AI开发框架,为Java开发者提供标准化的大模型接入能力。该框架支持多模型服务(如OpenAI、Ollama等),通过类似JdbcTemplate的模板方法简化调用,内置企业级特性如重试机制和限流策略。开发者只需在Spring Boot项目中添加相应依赖,配置API密钥或本地模型地址,即可快速构建AI应用。SpringAI支持基础文本生成、流式响应和提示模板化等核心功能,能与Spring生态无缝集成,显著降低Java开发者的AI应用开发门槛。

2025-10-15 10:07:23 981

原创 ​RocketMQ 与 RabbitMQ 全面对比:架构、性能与适用场景解析

摘要: Apache RocketMQ与RabbitMQ在消息中间件领域各有优势。RocketMQ(Java生态)侧重高吞吐、分布式事务,适合电商、金融等大规模场景,支持顺序消息和延迟消息;RabbitMQ(Erlang编写)则擅长灵活路由,支持AMQP等多协议,适合复杂路由需求及异构系统集成。RocketMQ性能更高(单机百万级TPS),而RabbitMQ延迟更低(微秒级)。选型建议:高吞吐/顺序消息选RocketMQ,复杂路由/多语言支持选RabbitMQ,需结合业务需求、技术栈综合考量。

2025-10-14 17:42:55 750

原创 RabbitMQ全面详解:从核心概念到企业级应用

RabbitMQ是一个开源的消息代理中间件,基于AMQP协议实现,用于分布式系统间的异步通信。其核心架构包含生产者、交换机、队列、消费者等组件,支持灵活的消息路由和高可靠性传输。文章详细介绍了RabbitMQ的环境搭建方法(包括Docker和Linux系统安装)、基本配置管理以及工作模式。其中重点讲解了简单模式的Java实现,展示了如何创建生产者发送持久化消息,以及消费者接收并手动确认消息的完整流程。RabbitMQ以其高可用性、集群支持和多协议兼容性,成为现代分布式系统中重要的消息中间件解决方案。

2025-10-14 17:30:26 498

原创 RocketMQ全面详解:从核心概念到高性能实战

RocketMQ是阿里巴巴开源的高性能分布式消息中间件,支持亿级消息处理,广泛应用于大数据实时计算、日志收集等场景。其核心架构包括NameServer(路由中心)、Broker(消息存储)、Producer(生产者)和Consumer(消费者)四大组件,采用Topic和Queue实现消息分类与并行处理。本文详细介绍了RocketMQ的安装配置、核心概念以及基础使用,包括Java客户端的消息收发示例代码,帮助开发者快速掌握RocketMQ的基本原理与实战应用。

2025-10-14 17:19:41 425

原创 Go语言泛型全面解析:从基础到高级应用

Go 1.18引入泛型解决了代码复用和类型安全的核心问题。泛型允许编写类型参数化的代码,支持函数和结构体的通用实现。通过类型约束(如any、comparable)限定参数范围,使用~符号支持底层类型。泛型适合实现通用数据结构(栈、队列)和算法(map/filter/reduce),但不适用于简单函数或性能敏感场景。Go采用折中的实现方案平衡编译速度与运行时性能。使用时需注意类型参数限制和合理约束设计。

2025-10-11 09:35:40 300

原创 Go语言GC调优:常见问题与解决方案

Go语言GC性能优化指南摘要 本文总结了6种常见的Go语言GC性能问题及解决方案:1)GC频繁触发时,建议调整GOGC参数、使用对象池和预分配内存;2)STW暂停时间过长时,应减少全局变量、控制Goroutine数量并优化数据结构;3)内存泄漏问题可通过Context管理Goroutine、设置缓存过期机制和使用pprof定位;4)高并发下的内存压力可通过strings.Builder、优化结构体布局和减少内存逃逸缓解;5)容器环境中需设置GOMEMLIMIT和合理配置GOGC;6)推荐使用GODEBUG=

2025-10-11 09:21:41 396

原创 Go语言GC调优全面指南(一)

Go语言垃圾回收机制采用并发标记-清扫算法,从Go 1.5开始引入三色标记法,实现了亚毫秒级暂停时间。GC演进历经多个版本优化,包括Go 1.14降低CPU占用30%、Go 1.18支持分代回收等。触发机制包括内存分配、定时和手动触发三种方式,核心参数GOGC可调节GC频率。评估内存分配需关注GC行为、内存使用效率和分配热点,工具包括GC日志和pprof分析。调优策略包括调整GOGC、设置GOMEMLIMIT、对象复用、预分配内存等,其中sync.Pool可显著减少GC压力。合理优化可使吞吐量提升20%或延

2025-10-11 09:20:43 347

原创 Go 协程在实际项目中的应用详解

Go协程是Go语言中的轻量级并发执行单元,相比传统线程具有显著优势:初始栈空间仅2KB,支持高效调度降低上下文切换开销,语法简洁只需go关键字即可启动。协程特别适用于高并发网络服务(如Web服务器)、大规模并行计算(如图像处理)等场景,可轻松创建百万级并发。Go通过通道(Channel)和同步原语实现安全通信,遵循"通过通信共享内存"的设计理念。协程的资源占用少、调度效率高,能显著提升程序性能,是构建高并发应用的核心工具。

2025-10-11 09:05:36 381

原创 Go语言操作Redis

本文全面介绍了Go语言操作Redis的方法,包括客户端选择、环境配置和五大基础数据结构操作。重点讲解了go-redis库的使用,涵盖字符串、哈希、列表、集合和有序集合的CRUD操作,并演示了管道技术等高级特性。文章提供了实用的代码示例,帮助开发者快速掌握Go与Redis的交互技巧,实现高效数据存储与访问。

2025-10-09 17:22:01 581

原创 Go vs Java:云原生时代的技术博弈与开发者生存指南

在当今软件开发领域,Go与Java的对比不仅是两种编程语言的较量,更是的碰撞。Java作为企业级应用的"老牌贵族",自1995年诞生以来一直占据着后端开发的主导地位;而Go作为2009年问世的"后起之秀",凭借其在云原生时代的独特优势迅速崛起。据TIOBE排行榜数据显示,Go语言从2020年的第13位升至2025年的第7位,市场份额突破3%,而Java虽面临挑战但仍稳居前列。本文将从四个维度,深度解析这两种语言的优劣得失,为开发者在这个技术变革的时代提供决策参考。

2025-09-30 12:32:40 375

原创 Gin 框架令牌桶限流实战指南

本文介绍了在Gin框架中实现令牌桶限流的两种方法:手动实现和利用官方rate包。令牌桶算法通过控制请求速率保护系统,允许突发流量同时保持长期稳定速率。手动实现提供了高度灵活性,包含令牌桶结构、限流器逻辑和中间件封装;而官方rate包方案更简洁,内置了令牌桶实现和客户端清理机制。两种方法都能有效防止服务器过载,开发者可根据项目需求选择适合的方案。

2025-09-26 16:20:39 681

原创 Gin框架整合Swagger生成接口文档完整指南

摘要:本文介绍了在Gin框架中集成Swagger自动生成API文档的方法。Swagger通过代码注解实现"代码即文档",解决了传统手写文档更新不同步、调试不便等问题。内容包括:1) Swagger安装配置;2) 项目结构与基础注解配置;3) 数据模型和API接口的详细注解编写规范,涵盖GET、POST、PUT、DELETE等多种请求类型,提供参数校验、响应格式等标准定义。通过集成Swagger,开发者可以自动生成实时准确的API文档,提升开发效率和协作质量。

2025-09-26 16:18:19 1081

原创 Go语言net/http库使用详解

Go语言的net/http包提供了完整的HTTP服务器和客户端实现,支持快速构建高性能Web服务。服务器端支持路由管理、请求方法处理、参数解析(查询参数、表单和JSON)等功能,并可通过中间件扩展功能。客户端方面支持GET/POST请求发送、自定义请求头、超时设置等特性。该标准库设计简洁,无需依赖第三方框架即可实现完整的HTTP通信功能,适合构建各种规模的Web应用和服务。

2025-09-26 16:14:47 632

原创 Go test 命令完整指南:从基础到高级用法

Go语言测试工具go test是Go语言内置的测试框架,支持测试函数、基准测试和示例函数。测试文件需以_test.go结尾,包含三种函数类型:TestXXX(测试函数)、BenchmarkXXX(基准测试)和ExampleXXX(示例函数)。该工具提供多种运行模式,支持测试缓存管理、并行测试、初始化清理等特性。基准测试可通过-bench参数运行并分析性能,还支持生成CPU、内存等性能分析数据。go test的高级功能包括表驱动测试、子测试、JSON输出等,并可通过-cover参数进行代码覆盖率分析。最后可通

2025-09-26 16:12:38 961

原创 Go tool pprof 与 Gin 框架性能分析完整指南

pprof是Go语言内置的性能分析工具,可诊断CPU、内存、Goroutine等性能问题。它通过采样机制实现低开销分析(<5%),支持多种分析类型:CPU分析定位热点代码,内存分析检测泄漏,Goroutine分析诊断阻塞等。在Gin框架中可通过标准库或gin-contrib/pprof集成,生产环境需添加访问控制。分析时使用go tool pprof采集数据,支持交互式命令(top/list/web)和可视化工具(火焰图/调用图)。实战案例展示了如何诊断CPU瓶颈、内存泄漏和Goroutine泄漏问题

2025-09-26 16:09:44 898

原创 Go语言在区块链开发中的应用场景详解

对于准备进入区块链领域的开发者来说,掌握Go语言无疑是一个明智的选择,将为参与前沿区块链项目奠定坚实基础。Go语言在区块链开发领域备受青睐,主要得益于其独特的语言特性和强大的并发支持。Go语言强大的标准库支持快速构建区块链节点的RPC接口和API服务,方便外部应用与区块链交互。未来,随着Go语言本身的演进和区块链技术的成熟,两者结合将催生更多创新应用,推动区块链技术在金融、供应链、政府服务等领域的广泛落地。Go语言通过其简洁的语法和强大的数据结构支持,非常适合实现分布式账本的核心逻辑。

2025-09-25 15:53:15 721

原创 Gin框架拦截器(中间件)使用指南

中间件是一个返回的函数,在函数体内可以编写需要在请求处理前后执行的逻辑。// 在请求处理之前执行的代码// 继续执行后续的请求处理逻辑c.Next()// 在请求处理之后执行的代码Gin框架的拦截器(中间件)是实现横切关注点的强大工具,通过合理的中间件设计,可以提高代码的复用性、可维护性和可扩展性。掌握中间件的定义、注册、执行顺序以及关键方法的正确使用,是构建高质量Gin应用的关键。

2025-09-25 15:43:40 886

原创 全掌握Go语言中的JSON操作

本文介绍了Go语言中处理JSON的常用方法:1)JSON与Go类型的对应关系;2)基本编码(json.Marshal)和解码(json.Unmarshal)操作;3)结构体标签的使用技巧;4)处理未知JSON结构的两种方式(map[string]interface{}和json.RawMessage);5)时间类型的处理;6)流式处理大JSON数据的方法。文章通过示例代码展示了如何自定义JSON字段名、忽略字段、处理动态结构等实用技巧,适合Go开发者快速掌握JSON处理的核心技术。

2025-09-24 17:21:05 743

原创 现代Go语言开发

现代 Go 语言开发不仅仅是掌握语法,更是一套包含工程实践并发模型依赖管理微服务架构和性能优化的综合体系。希望以上介绍能帮助你更好地理解现代 Go 开发。如果你在特定场景(例如高并发处理、微服务部署)

2025-09-24 17:15:44 349

原创 Go 语言函数式编程利器:samber/lo 库完全指南

samber/lo 是一个基于 Go 1.18+ 泛型实现的 Lodash 风格工具库,提供 100+ 实用函数简化集合操作。核心优势包括:类型安全、函数式编程支持(Map/Filter/Reduce等)、丰富功能和高效性能。安装简单(go get github.com/samber/lo@v1),支持切片转换(Map)、过滤(Filter)、分组(GroupBy)等常见操作,显著减少样板代码。该库特别适合数据处理场景,能提升代码简洁性和可读性,同时保持与手写循环相当的性能。

2025-09-23 16:22:50 954

原创 Go 语言切片和 Map 操作常用库指南

在 Go 项目开发中,我们频繁地对切片(slice)和映射(map)进行各种操作,例如元素过滤、数据转换、集合运算(求交集、并集)、排序、去重等。Go 的标准库提供了一些基础功能,但更高级的操作往往需要开发者手动实现,这不仅增加了代码量,也提高了出错的风险。第三方库通过封装常用操作、提供泛型支持、实现函数式编程风格以及保证类型安全等方式,极大地简化了切片和 map 的处理。这些库通常还经过优化,旨在提供高性能,避免引入额外开销。提高开发效率:减少样板代码,让开发者更专注于业务逻辑。增强代码可读性。

2025-09-23 16:06:37 1043

原创 Golang常用Web开发库

Go语言拥有丰富的开源库生态,涵盖Web开发、数据库操作、配置管理等多个领域。常用库包括Gin/Echo(Web框架)、GORM/sqlx(数据库)、Viper(配置管理)、Logrus/Zap(日志)、Testify(测试)等。根据项目需求可选择不同工具,如高性能API服务推荐Gin,ORM需求推荐GORM。此外,Go标准库本身功能强大,建议结合官方文档和实际项目进行学习。这些工具能显著提升开发效率和代码质量。

2025-09-22 16:22:59 1037

原创 Golang 赋值运算符与短声明 (= 与 :=)使用场景

记住一个关键点::=用于在函数内部声明新变量并赋值,而用于为已存在的变量重新赋值。实践中,在函数内部初始化局部变量时,可优先使用:=,让代码更简洁。若需显式指定变量类型、声明包级别变量或只是更新已有变量的值,则使用。

2025-09-22 11:58:07 755

原创 Go语言结构体初始化全面指南与最佳实践

Go语言结构体初始化方式多样,各有特点。推荐使用T{Field: Value}或&T{Field: Value}进行带字段名的值/指针初始化,可读性强且不受字段顺序影响。复杂场景建议使用构造函数封装逻辑。值类型适合小型不可变结构体,指针类型则更适合需要修改或大型结构体。性能关键场景可考虑sync.Pool。初始化时注意未显式赋值字段会被设为零值,建议根据实际需求选择最合适的方式,平衡代码清晰度与性能。

2025-09-19 16:13:45 796

原创 Gin 框架中使用 Validator 进行参数校验的完整指南

在现代 Web 开发中,对请求参数进行校验是不可或缺的环节。Go 语言的 Gin 框架默认集成了库(目前主要支持 v10 版本),这是一个功能强大且高性能的参数校验工具,可以帮助开发者快速定义和执行各种校验规则。Validator 目前已经在 GitHub 上获得了超过 7.8k 的星标,体现了其在 Go 生态中的广泛认可和应用。通过使用 validator,我们可以在 Gin 应用中轻松实现复杂的数据验证逻辑,从简单的必填字段检查到复杂的跨字段关联验证都能胜任。

2025-09-19 15:29:31 1136

原创 Go 语言错误处理深度技术文档:从基础到高级实践

Go语言采用显式错误处理机制,通过error接口和多值返回来处理可恢复错误,与panic/recover机制处理的不可恢复错误形成鲜明对比。文章介绍了基础错误创建、显式检查模式以及Go 1.13引入的错误包装技术,并阐述了自定义错误类型的优势。同时强调谨慎使用panic/recover,避免将其作为常规控制流。最后提供了分层错误处理策略和最佳实践,帮助开发者编写健壮可靠的Go代码。

2025-09-19 15:02:10 1326

原创 Gin框架参数绑定完全指南:从基础到实战最佳实践

Gin 框架提供了强大且灵活的参数绑定功能,能自动将请求数据(如 JSON、表单数据、查询字符串、URI 参数等)解析并绑定到 Go 的结构体或变量中,这极大简化了 Web 开发中的数据处理。本文将全面介绍Gin中的参数绑定方式,并提供实用代码示例和最佳实践。Gin框架支持多种数据绑定方式,主要通过结构体标签(Struct Tags)​​ 来定义数据源和验证规则。Gin提供了两类绑定方法:​Must Bind​ 方法(如 Bind, BindJSON):绑定失败会自动返回400错误并终止请求。

2025-09-18 17:35:31 823

原创 Go语言高并发编程全面解析:从基础到高级实战

Go语言采用CSP并发模型,通过Goroutine和Channel实现高效并发。Goroutine是轻量级用户态线程,初始栈仅2-4KB,支持动态扩展,相比传统线程开销更低且更易管理。Channel作为Goroutine间通信机制,通过无缓冲Channel实现强同步,有缓冲Channel支持生产者-消费者模式。Go运行时采用M:N调度模型,高效管理大量Goroutine。标准库提供sync.WaitGroup、Context等工具简化并发控制,使开发者能轻松构建高性能并发应用,避免传统并发编程的复杂性。

2025-09-18 15:20:11 1049 1

原创 搭建Gin通用框架

本文介绍了一个基于Gin框架的Go Web开发脚手架模板,提供了完整的项目结构和常用功能集成。项目采用模块化设计,包含配置管理、日志记录、MySQL和Redis数据库连接等核心模块。配置文件采用YAML格式,支持热加载。主要特点包括:命令行参数验证、分步初始化流程、错误处理和资源清理机制。结构清晰的目录组织(conf、dao、logger等)和详细的代码注释,使其成为快速开发Gin Web应用的基础框架。

2025-09-17 17:41:46 836

空空如也

空空如也

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

TA关注的人

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