自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring AI Alibaba 对话记忆丢失问题:Redis 缓存过期后如何恢复 AI 上下文

Spring AI Alibaba 对话记忆丢失问题解决方案 问题描述:当 Redis 缓存过期后,AI 无法记住历史对话内容,尽管用户能看到完整的聊天记录。 问题根源: 系统存在两套独立存储机制 消息缓存系统:存储聊天记录供前端展示 AI 记忆系统:存储对话上下文供 AI 推理使用 Redis 过期后仅恢复了消息缓存系统,AI 记忆系统未被恢复 解决方案: 配置 ChatMemory Bean 供其他服务注入 修改消息服务,在从数据库加载历史消息时: 同时恢复两套系统数据 将数据库消息转换为 Spring

2025-12-15 15:53:17 550

原创 Spring AI Alibaba 的 ChatClient 工具注册与 Function Calling 实践

使用Spring AI开发聊天应用时工具注册与函数调用的实践经验。主要内容包括:1) ChatClient Builder的核心配置方法,如系统提示、会话记忆和工具注册;2) 两种函数调用实现方式:Supplier/Function Bean和@Tool注解方法;3) 重点区分.defaultTools()与.defaultToolNames()的使用场景;4) 提供自动收集Bean注册工具的优化方案;5) 解释Supplier与Function的适用场景差异。

2025-12-12 11:24:24 876

原创 SSE 流式输出 Markdown 实时渲染问题解决方案

使用 fetch + ReadableStream 实现 SSE 流式输出时 Markdown 格式丢失的问题。原方案因错误地过滤空行和使用 trim() 导致换行符丢失,使 Markdown 内容挤成一团。通过分析 SSE 规范,发现空 data: 行代表换行符,需保留空白字符并拼接多行数据。最终解决方案改进了解析逻辑:避免过滤空行、用 buffer 处理跨块数据,并通过 \n 连接同一事件的多个 data: 行,成功恢复了 Markdown 的实时渲染效果。

2025-12-05 14:07:37 837

原创 基于Spring AI Alibaba的AI聊天系统中,流式输出暂停时出现重复插入问题的分析与解决

基于Spring AI Alibaba的AI聊天系统中SSE流式输出暂停时出现的重复插入问题。当用户暂停流式输出时,系统会同时触发doOnCancel和doOnComplete回调,导致同一条AI消息被重复保存两次。解决方案采用CAS(Compare-And-Set)机制,通过原子操作确保消息只保存一次。具体实现包括添加消息保存标识、初始化标识状态,以及在完成回调中使用CAS进行幂等性控制,有效解决了重复插入问题。

2025-12-03 13:31:15 667

原创 若依框架集成Spring AI Alibaba流式对话遇到的认证问题及解决方案

若依框架中集成Spring AI Alibaba实现流式对话接口时,遇到Spring Security认证冲突问题。同步接口正常,但流式接口因异步响应已提交后触发二次权限检查而报错。问题根源在于Spring Security过滤器链与流式响应的时序冲突。通过分析错误日志和机制,发现需确保Security正确处理异步请求的认证信息,最终通过修改SecurityConfig配置,添加对异步请求的支持解决问题。该方案避免了直接放行接口导致的安全隐患,同时保留了JWT认证功能。

2025-10-11 11:11:35 1388

原创 若依框架 (Spring Boot 3) 集成 knife4j 实现 OpenAPI 文档增强

本文详细介绍若依框架(Spring Boot 3)集成knife4j实现OpenAPI文档增强的全过程。主要内容包括:添加knife4j依赖、配置安全框架权限、设置knife4j和SpringDoc参数、业务模块集成方法,以及OpenAPI 3.0注解使用详解和版本对比。提供完整的配置示例和注解案例,帮助开发者快速实现功能强大的API文档系统,并可通过/doc.html访问增强后的文档界面。

2025-09-23 16:41:24 1028

原创 SpringAI智能客服Function Calling兼容性问题解决方案

SpringAI智能客服系统在使用阿里云百炼平台时出现Function Calling兼容性问题,表现为工具输入参数被异常分片。通过源码分析发现,问题源于平台返回数据格式与OpenAI标准不一致。本文提出并实现了一个自定义兼容层解决方案,通过重写OpenAiChatModel类来合并分片参数,同时保持流式响应特性,相比简化方案更优。最终通过Spring Bean配置注册自定义模型,解决了兼容性问题。

2025-08-01 21:32:49 1303 1

原创 Spring AI 使用阿里百炼平台实现流式对话:基于 SSE 的实践

本文介绍如何利用Spring AI和SSE实现流式对话功能。文章首先对比了SSE与WebSocket的特性差异,指出SSE更适合单向推送场景。随后详细展示了项目搭建过程,包括依赖配置和模型服务设置。核心实现部分包含ChatClient配置(支持记忆功能和参数调节)和流式对话控制器(具备中断机制和日志记录)。通过Flux实现响应式流式输出,takeWhile控制动态中断,concatWithValues添加结束标记,为开发者提供了一套完整的流式对话解决方案。

2025-08-01 11:47:54 1582

原创 Redis高频问题全解析

Redis作为高性能内存数据库,具备极速读写能力,主要得益于内存操作、单线程模型、高效数据结构和多路I/O复用机制。它提供五种基础数据类型(String、List、Hash、Set、Sorted Set),满足不同业务场景需求。Sorted Set底层采用压缩列表或跳跃表实现,相比B+树更适合内存环境。Redis支持三种持久化方案(RDB、AOF及混合模式)和三种集群方案(主从、哨兵、Cluster),广泛应用于缓存、消息队列、分布式锁等场景。使用中需注意缓存穿透/击穿/雪崩等问题,可通过布隆过滤器、互斥锁

2025-07-31 18:16:06 733

原创 Java多线程锁机制 无锁 → 偏向锁 → 轻量级锁 → 重量级锁

本文系统介绍了Java的锁机制及其优化策略。首先分析了多线程并发问题的三大根源:可见性、有序性和原子性问题。随后详细解析synchronized如何通过内存屏障等技术解决这些问题。重点阐述了JDK1.6引入的锁升级机制:从偏向锁(无竞争)→轻量级锁(短时间竞争)→重量级锁(激烈竞争),根据实际竞争强度动态调整锁策略。同时深入剖析了Monitor机制的核心组成,包括Owner字段、重入计数器、锁池与等待池的区别。最后强调锁升级的核心思想是在保证线程安全的前提下,针对不同并发场景选择最优锁策略,从而显著提升系统

2025-07-30 10:51:58 985

原创 CAS原理与实战:解锁并发编程新姿势

CAS(比较再交换)是一种乐观锁机制,通过硬件原子操作实现线程安全,避免传统锁的性能开销。其核心是比较内存值、预期值和新值,匹配则更新。Java中通过AtomicXXX类实现,依赖Unsafe类的CPU原子指令,适用于读多写少场景。优势包括非阻塞、无死锁和高性能,但存在ABA问题(可通过版本号解决)和循环开销问题。CAS广泛应用于AQS框架、并发容器等,是高效并发编程的重要技术。

2025-07-30 00:44:20 737

原创 RAG、Function Call、MCP技术笔记

本文对比分析了RAG、Function Call和MCP三种AI增强技术。RAG通过向量检索连接外部知识库,适用于知识问答系统;Function Call让模型调用外部函数,适合API集成;MCP则是统一工具调用的协议标准。三者各有侧重:RAG侧重知识扩展,Function Call侧重能力调用,MCP侧重标准化集成。技术选型需考虑实时性、复杂度等维度,Java实现难度从简单到复杂不等。理解这些差异对构建AI应用至关重要。

2025-07-25 17:57:29 642 1

原创 Java线程基础面试复习笔记

本文介绍了多线程编程的核心概念与实现方法。主要内容包括:1)线程与进程的区别,重点在内存空间、资源开销和通信方式的差异;2)并发与并行的概念解析;3)四种线程创建方式及其特点;4)线程状态转换机制;5)线程控制方法(join、wait/notify等);6)线程安全停止的最佳实践。文章通过对比分析(如run()与start()、wait()与sleep()等)和代码示例,系统性地阐述了多线程编程的关键技术与注意事项,为开发者提供了实用的参考指南。

2025-07-25 15:53:33 927 1

原创 Redis高可用架构演进面试笔记

Redis集群架构演进与核心技术解析:从单机到分片集群的完整解决方案。文章详细剖析了主从复制(读写分离、全量/增量同步)、哨兵机制(故障检测/转移)、脑裂问题(预防方案)和分片集群(哈希槽分片)四部分核心内容。重点展示了Redis如何通过架构升级解决性能瓶颈(主从复制)、高可用问题(哨兵)、数据一致性(脑裂防护)及海量存储需求(分片集群),最后总结了架构演进路径与各方案的核心价值。技术要点涵盖数据同步机制、故障转移算法、哈希槽路由等关键设计。

2025-07-24 15:28:01 1159 1

原创 HashMap面试知识点笔记

HashMap基于数组+链表/红黑树实现哈希表,通过key的hash值计算数组下标存储数据。JDK1.8引入红黑树优化,在链表长度>8且数组长度≥64时转换为红黑树,解决了JDK1.7头插法导致的死循环问题。put操作包含初始化检查、计算索引、插入逻辑和扩容检查四个步骤,当元素数量达到阈值时会扩容为原容量的2倍。数组长度设计为2的幂次方,通过位运算提升计算效率。HashMap非线程安全,建议在多线程环境下使用ConcurrentHashMap。负载因子默认为0.75,是时间和空间的平衡选择。

2025-07-23 16:13:57 449 1

原创 ArrayList 面试知识点笔记

ArrayList是基于动态数组实现的线性结构,默认初始容量为10,扩容时按1.5倍增长。相比LinkedList,ArrayList随机访问快(O(1)),但插入删除效率低(O(n))。核心区别在于ArrayList内存连续,LinkedList通过指针连接。重要考点包括线程不安全特性、扩容机制(建议预估容量避免频繁扩容)和迭代器的fail-fast机制。实际开发中需注意遍历删除的正确用法、性能优化(如批量操作)和避免内存泄漏。

2025-07-21 17:34:10 917 1

原创 MQ 核心知识点笔记

本文总结了MQ消息队列的核心面试要点:1)消息防丢失需生产者确认、持久化和消费者ACK机制;2)避免重复消费需保证幂等性,如唯一ID和分布式锁;3)死信交换机处理失败消息,延迟队列实现定时任务;4)消息堆积可通过扩容消费者和使用惰性队列解决;5)高可用方案推荐仲裁队列。全文涵盖消息可靠性、延迟处理、系统扩展等关键场景,适合结合实际项目案例回答。

2025-07-21 15:41:37 702 1

原创 ThreadLocal内存泄漏面试笔记

ThreadLocal在Web应用中的内存泄漏问题源于线程复用机制与引用设计的矛盾。Tomcat等容器的线程池会复用工作线程,而ThreadLocalMap中存储的Value是强引用,即使Key(ThreadLocal对象)因弱引用被GC回收,Value仍会驻留内存。典型场景是局部ThreadLocal变量处理完请求后未清理,导致线程复用时内存泄漏。解决方案包括:1)在finally块中手动remove();2)声明为static final变量;3)使用重写remove方法的子类。理解ThreadLoca

2025-07-21 14:40:57 559

原创 Spring Cloud 业务方面笔记

分布式系统架构中的核心技术与解决方案。限流机制部分对比了Tomcat、Nginx和网关的限流实现,重点分析了漏桶与令牌桶算法的差异。分布式理论章节阐述了CAP三选二原则和BASE理论的实践应用。分布式事务解决方案详细说明了Seata框架的三种模式(XA、AT、TCC)及MQ实现方式。接口幂等性设计提供了Token+Redis等四种实现方案。最后概述了Quartz、XXL-Job等分布式任务调度框架。全文通过图表结合的方式,系统性地讲解了高并发分布式系统的关键设计要点。

2025-07-17 15:14:45 700

原创 SpringCloud面试笔记

SpringCloud微服务架构的五大核心组件:注册中心(Eureka/Nacos)、服务调用(Feign)、负载均衡(Ribbon)、熔断(Hystrix/Sentinel)和服务网关(Gateway)。重点阐述了服务注册发现机制、Ribbon负载均衡策略、熔断降级原理,以及Gateway和Feign的使用特点。同时对比了SpringCloud Alibaba生态组件与原生组件的差异,并提供了常见面试问题的解答。文章还涵盖了配置中心、服务监控等微服务关键话题,为构建高可用分布式系统提供了实践指导

2025-07-17 11:35:54 706

原创 Spring面试核心知识点整理

总结了Spring框架的五个核心知识点:1) 单例Bean的线程安全问题及解决方案;2) AOP编程的概念、组件与应用;3) 事务管理的两种方式及常见失效场景;4) Bean生命周期的完整流程;5) SpringBoot自动装配原理与实现机制。文章通过代码示例和原理分析,详细讲解了Spring框架的关键技术点,涉及线程安全、切面编程、事务控制、Bean管理及自动配置等内容,为开发者提供了Spring技术栈的实践指导。

2025-07-15 14:40:30 984

原创 若依框架集成阿里云OSS实现文件上传优化

将阿里云OSS集成到若依框架中的方案,以解决传统服务器本地存储的硬件要求高、管理难度大、性能瓶颈和单点故障等问题。通过创建OSS文件存储服务类(OSSAliyunFileStorageService)封装上传和删除操作,并配置OSS客户端自动初始化(OssAliyunAutoConfig),实现高效、稳定的文件存储管理。该方法可提升文件访问性能,降低维护成本,同时适用于MinIO等其他对象存储服务。

2025-07-13 22:25:53 750

原创 Git 使用笔记

Git版本控制的基本使用方法和核心概念。主要内容包括:1)首次使用前的全局配置;2)Git的三个重要区域(工作区、暂存区、版本库)和文件状态;3)常用操作命令(查看状态、文件操作、分支管理);4).gitignore文件使用;5)远程仓库操作;6)实用技巧与撤销操作;7)最佳实践建议;8)常见问题解决方法。文章通过代码示例和图示,帮助开发者快速掌握Git的基本操作,建立规范的版本控制流程。

2025-07-13 22:10:27 1154

原创 Redis分布式锁面试笔记

本文系统介绍了Redis分布式锁的实现原理与应用实践。在微服务架构下,传统本地锁无法跨进程协调资源访问,Redis通过SETNX命令实现互斥性锁机制,并配合超时设置和唯一标识确保安全。文章详细解析了锁续期、可重入锁实现及RedLock高可用方案,同时指出主从异步复制的潜在风险。针对实际开发,推荐使用Redisson框架提供的自动续期、可重入等完善功能,避免重复造轮子。最后总结了分布式锁设计需考虑的互斥性、超时控制等核心要素,为分布式系统开发提供重要参考。

2025-07-12 13:05:19 715

原创 Redis过期策略与内存淘汰机制面试笔记

Redis采用惰性删除和定期删除相结合的过期策略,平衡CPU和内存使用。内存淘汰策略包括多种算法(LRU/LFU等),针对不同场景选择合适的策略(如allkeys-lru适合缓存热点数据)。默认noeviction策略会拒绝写入,生产环境建议配置其他策略。合理配置过期和淘汰机制对优化Redis性能至关重要,需根据业务特点选择适当策略,确保缓存有效性和服务可用性。(148字)

2025-07-12 13:00:53 391

原创 Redis持久化面试笔记

Redis提供了两种持久化方式:RDB(快照)和AOF(命令日志)。RDB通过bgsave命令创建内存快照,采用COW技术优化性能,适合快速恢复但可能丢失数据。AOF记录每个写命令,提供三种写入策略(always/everysec/no),支持重写机制压缩文件。实际应用中建议混合使用RDB和AOF,兼顾恢复速度和数据安全。RDB适合性能优先场景,AOF适合数据安全要求高的场景,生产环境推荐混合方案。

2025-07-12 10:10:10 452

原创 Redis缓存三兄弟:穿透、击穿、雪崩全解析

Redis缓存常见问题及解决方案。"缓存三兄弟"包括穿透(布隆过滤器/缓存空对象)、击穿(互斥锁/逻辑过期)和雪崩(随机过期/多级缓存)。针对缓存一致性,分析了异步通知(MQ/Canal)和强一致性方案(读写锁/延迟双删),强调需根据业务场景选择合适方案。最后对比了RDB和AOF持久化机制,建议生产环境同时启用。面试要点在于理解问题本质及场景化解决方案。

2025-07-11 21:13:35 453

原创 JVM调优实战:从参数设置到性能监控

JVM性能调优的核心要点:1) 部署方式差异,War包需修改Tomcat配置,Jar包直接指定参数;2) 关键JVM参数设置,包括堆内存(Xms/Xmx)、虚拟机栈(Xss)和年轻代参数;3) 垃圾回收器选择策略,吞吐量优先选Parallel GC,低延迟选G1;4) 内存泄漏排查方法,通过dump文件分析工具定位问题;5) CPU飙高排查流程,top/ps/jstack命令联用;6) 常用监控工具如jstat、VisualVM等;7) 调优原则应遵循监控优先、小步验证,重点关注吞吐量、延迟等指标

2025-07-11 15:25:06 822

原创 JVM垃圾回收机制面试笔记

JVM垃圾回收机制,包括垃圾识别算法(引用计数法和可达性分析)、垃圾回收算法(标记-清除、标记-整理、复制和分代收集)以及JVM内存分代模型。详细解析了Minor GC、Major GC、Full GC等GC类型的特点和触发条件,对比分析了串行、并行、CMS和G1等主流收集器的适用场景。同时阐述了强引用、软引用、弱引用和虚引用四种引用类型的使用场景,并提供了GC性能优化建议和常用JVM参数设置。最后整理了垃圾回收相关的面试高频问题,为理解JVM内存管理机制提供了全面指导。

2025-07-10 20:56:25 690

原创 JVM类加载机制解析

类加载器是JVM将.class文件加载到内存的核心组件,分为启动类、扩展类、应用程序类和自定义类加载器。双亲委派模型通过委派机制保证类唯一性和安全性。类加载过程包含加载、验证、准备等7个阶段。面试重点包括初始化触发条件、自定义类加载器实现、双亲委派优缺点等。关键点在于类加载器采用组合关系,双亲委派确保核心类安全,类加载是懒加载机制。

2025-07-10 17:47:02 1011 5

原创 Java实现QQ邮箱发送功能

在Java应用中集成QQ邮箱邮件发送功能的实现步骤。首先需要在QQ邮箱中开启SMTP服务并获取16位授权码,然后在项目中添加javax.mail依赖并配置SMTP服务器信息。核心代码展示了如何创建邮件会话、构建HTML格式邮件内容以及发送邮件的方法。文章还提供了使用示例,并提醒开发者注意每日发送限制(普通用户100封/日)和使用授权码等注意事项。通过这五个步骤,开发者可以轻松实现Java项目的邮件发送功能。

2025-07-09 17:55:01 772 3

原创 JVM组成及运行流程 - 面试笔记

JVM内存架构主要包括程序计数器、虚拟机栈、堆、方法区和直接内存。程序计数器是线程私有的,记录指令地址;虚拟机栈由栈帧组成,存储方法调用信息;堆是共享区域,存放对象实例;方法区存储类信息等,JDK1.8改用元空间;直接内存不属于JVM管理,用于NIO操作。内存管理需关注垃圾回收(主要在堆)、线程安全(私有区域天然安全)和版本差异。常见问题包括栈溢出、堆OOM和元空间配置。面试重点涉及内存划分、线程安全、溢出分析和性能调优参数设置。

2025-07-09 17:31:13 857 1

原创 MySQL三大日志:数据库核心机制全解析

MySQL三大日志(Undo Log、Redo Log、Bin Log)协同保障数据库ACID特性。Undo Log实现事务回滚和MVCC机制,通过版本链控制并发访问;Redo Log采用顺序I/O记录物理变更,解决Buffer Pool数据丢失问题;Bin Log作为逻辑日志支持主从复制。事务提交时遵循两阶段提交协议,先写Redo Log后写Bin Log。性能优化方面,Redo Log的顺序I/O比直接刷盘随机I/O更高效,Undo Log配合ReadView实现无锁并发控制。三大日志各司其职,共同确保

2025-07-08 20:15:49 885 1

原创 MySQL性能SQL优化面试笔记

MySQL数据库性能优化的8个关键方面:1)INSERT插入优化,推荐使用LOAD DATA指令和批量插入技巧;2)主键优化,强调自增主键和避免UUID;3)ORDER BY排序优化,区分两种排序方式并提供优化策略;4)GROUP BY分组优化方法;5)解决LIMIT深分页问题的方案;6)COUNT查询的性能差异与优化;7)UPDATE更新的注意事项;8)通用优化建议,包括索引、查询和配置优化。文章提供了具体的SQL示例和参数设置建议,涵盖了从基础操作到高级优化的完整方案。

2025-07-08 16:22:01 326

原创 MySQL的EXPLAIN解析与优化面试笔记

MySQL EXPLAIN执行计划分析与索引优化核心内容。重点是EXPLAIN关键字段(select_type、type、possible_keys等)的含义和性能影响,其中type为ALL时需立即优化。详细解析了覆盖索引、索引下推和最左匹配原则,强调复合索引必须从左开始使用。提供了索引优化策略和查询技巧,如避免SELECT*、合理使用LIMIT等,并列出函数操作、模糊查询等索引失效场景

2025-07-08 11:43:47 1317 1

原创 MySQL B+树面试笔记

B+树是MySQL InnoDB的核心数据结构,具有鲜明的层级结构:根节点、内部节点(存储索引键和指针)和叶子节点(存储完整数据并双向链接)。其设计优势包括:数据仅存于叶子节点减少磁盘I/O、3层树高支持千万级数据、双向链表提升范围查询效率。相比B树,B+树在磁盘I/O、范围查询方面表现更优。面试要点涵盖选择原因(I/O优化/范围查询)、树高影响、链表作用及自动平衡机制。通过有序存储和二分查找,单条记录检索不超过3次I/O。

2025-07-07 16:58:24 374 1

原创 MySQL数据存储与索引面试笔记

MySQL数据存储采用16KB的数据页作为基本单位,减少I/O操作。目录页帮助快速定位数据页,内部使用二分查找优化查询。InnoDB引擎使用B+树索引,聚簇索引存储完整数据而非聚簇索引需回表查询。B+树特性包括2-4层高度、叶子节点链表结构,支持高效范围查询。面试重点包括16KB页大小设计(平衡内存与I/O)、聚簇/非聚簇索引区别(数据存储方式与数量限制)、回表机制(可通过覆盖索引避免)。MySQL通过数据页-目录页-索引的三层结构,以空间换时间实现高效查询。

2025-07-07 16:08:36 531 1

原创 阿里云内容审核之文本审核 spring boot 项目

阿里云的文本审核服务是一种高效的内容安全解决方案,用于自动检测和过滤文本中的不适当内容。根据阿里云的开发文档描述中写道,文本检测的应用场景时,可以根据不同的需求选择合适的功能。:阿里云的内容安全服务不仅限于文本,还支持图片、视频、语音等多种对象进行多样化场景检测,有效降低内容违规风险。:阿里云文本审核服务支持批量审核文本内容,通过SDK或API接口一次提交多篇文本进行审核,提高处理效率。为了方便,我们先写了一个Controller控制器,通过传递文本的信息过来,来对文本的内容进行校验。

2024-12-08 00:18:10 1550

原创 阿里云内容审核之图片审核 spring boot 项目

在实现图片审核功能时,需要添加相应的依赖并配置连接到阿里云接口的参数。阿里云的图片审核服务是一种高效的内容安全解决方案,用于自动检测和过滤图片中的不适当内容。根据阿里云的开发文档描述中写道,图片检测的应用场景时,可以根据不同的需求选择合适的功能。:阿里云内容安全增强版的图片审核服务支持批量审核图片,通过SDK或API接口一次上传多张图片进行审核,提高处理效率。:阿里云的内容安全服务支持对图片、视频、文本、语音等多种对象进行多样化场景检测,有效降低内容违规风险。本文章对您有帮助,不妨点点关注!

2024-12-08 00:03:49 1708

原创 使用Python爬取36壁纸图片资源 下载图片 导入MySQL数据库

声明:本次爬取禁止商业使用,请尊重平台的权益!此方法仅供学习交流!如侵犯了平台权益,请联系作者,删除此贴,维护平台权益。声明:本次爬取禁止商业使用,请尊重平台的权益!此方法仅供学习交流!如侵犯了平台权益,请联系作者,删除此贴,维护平台权益。插入的数据库是自己项目所需的数据库,如有需要,请自行修改代码中的SQL插入语句,以达到同样的效果。

2024-12-07 23:41:55 241

空空如也

空空如也

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

TA关注的人

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