自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 英语 for VS of

核心逻辑区分for:「外部关联」(为了、给、持续、因为)→ 动作 / 事物指向外部的人 / 目标 / 原因;of:「内部关联」(的、组成、特征)→ 事物的内部归属、部分或属性。新概念二册学习重点优先掌握 for 表「目的 / 时间」、of 表「所属 / 部分与整体」(这是二册出现频率最高的用法);重点练习 "It's + 形容词 + for/of sb. to do" 结构(Lesson 22 后高频出现)。实战技巧。

2025-12-05 15:30:20 801

原创 Flask 框架功能说明

Flask 是一个轻量级的 Python Web 框架,由 Armin Ronacher 开发,遵循 “简单易用、灵活可扩展” 的设计理念,被广泛用于快速开发 Web 应用、API 接口或后端服务。

2025-11-18 16:34:03 363

原创 Flask-SQLAlchemy db 使用说明

db对象的使用遵循 “模型定义 → 会话操作 → 事务提交通过db.Model和db.Column定义表结构;通过db.session执行增删改查;通过commit()rollback()管理事务;通过drop_all()管理表结构。掌握这些操作后,即可完成绝大多数数据库交互需求。

2025-11-18 16:29:21 333

原创 Springboot 启动过程及源码分析

方法展开,涉及环境准备、上下文初始化、Bean 加载、Web 服务器启动等关键步骤。功能:这是 Spring 容器的核心初始化步骤,复用 Spring Framework 的。Spring Boot 的启动过程是一个高度封装但逻辑清晰的流程,核心围绕。等)实现高度可定制,这也是 Spring Boot 灵活易用的核心原因。方法,完成 Bean 实例化、依赖注入、Web 服务器启动等关键操作。实例化时会完成基础配置,为后续启动做准备。所有启动逻辑的起点是主类的。

2025-11-10 15:07:51 541 1

原创 SpringApplication 和 applicationContext 比较及区别

这个问题抓得很关键,能帮你理清 Spring Boot 启动核心组件的定位差异!,二者是 “启动统筹” 与 “运行时核心” 的关系。

2025-11-10 14:27:40 440

原创 Java 二进制及相关运算学习指南

通过以上内容,可掌握 Java 中二进制的基本操作及运算逻辑。实际开发中,位运算常用于高效计算(如权限控制、状态标记等场景)。在 Java 中,二进制数可通过前缀。Java 中可通过内置方法或手动算法实现进制转化。二进制是计算机底层数据的存储形式,由。表示十进制的 10)。

2025-10-20 16:38:51 303

原创 精选算法合集

二、TrieTree。

2025-10-19 21:03:11 118

原创 二维矩阵所有最短路径-BFS升级算法

【代码】二维矩阵所有最短路径-BFS升级算法。

2025-10-19 08:10:37 116

原创 Springboot 监控篇

如果需要监控业务指标(如自定义线程池状态),可通过 Micrometer 手动埋点:java运行@Component// 初始化一个任务计数器// 监控自定义线程池状态// 业务中调用此方法计数轻量需求:使用,快速搭建可视化监控,适合开发 / 测试环境。生产环境:推荐,支持持久化存储、告警配置(如线程数过高时邮件通知)、多维度分析。核心监控指标:线程数()、内存使用()、GC 耗时()、CPU 使用率(

2025-08-29 10:42:23 788

原创 Java 线程池拒绝策略

如果内置策略无法满足需求,可以通过实现记录被拒绝的任务到日志,后续人工处理将任务保存到持久化存储(如数据库、消息队列),待线程池空闲后重试抛出自定义异常,携带更多业务信息示例:自定义拒绝策略(记录日志并保存任务)java运行@Override// 1. 记录日志System.err.println("任务 " + r + " 被拒绝,线程池状态:" +"核心线程数=" + executor.getCorePoolSize() +

2025-08-28 13:56:20 879

原创 Springboot 集成 TraceID

单条请求的所有日志通过同一个 traceID 关联;跨服务调用时 traceID 自动传递(如果有多个服务);无需手动埋点,Sleuth 自动处理。这种方式既能满足日志查询和问题定位的需求,又能最小化代码侵入性。bo t。

2025-08-25 16:59:24 689

原创 Springboot并发篇

推荐做法:将异步服务和调用者分开到不同的类中不推荐但可行:如果必须放在同一类中,可以使用自我注入或获取代理对象的方式注意事项确保已添加注解配置合适的线程池异步方法应为public方法同一类内直接调用异步方法不会生效分离关注点(Separation of Concerns)是更好的设计实践,建议将异步服务单独放在一个类中。方法优点缺点适用场景功能强大,Java 8+原生支持需要理解函数式编程推荐大多数场景控制精确,简单直接需要手动管理计数需要精确同步控制的场景Spring原生支持不如。

2025-05-22 19:04:17 1549

原创 Spring源码

如下为这段时间持续学习Spring的总结。

2025-04-29 09:47:54 158

原创 图片矫正模型

doctr是一个用于文档图像分析的开源库,由法国的 DocEdge 团队开发。它建立在深度学习框架(如 PyTorch 和 TensorFlow)之上,为文档处理任务提供了高度模块化且易于使用的解决方案。以下是doctr。

2025-04-27 17:49:30 491

原创 DJL FastText (FtModel) 使用指南

java复制下载.optEngine("FastText") // 指定使用FastText引擎.optOption("quantized", "true") // 如果使用量化模型.build();// 使用predictor...

2025-04-27 13:56:40 765

原创 ApplicationListener<ApplicationReadyEvent>

是 Spring 框架里的一个接口,借助实现这个接口,你能够监听事件。当 Spring 应用完全启动并准备好处理请求时,就会发布事件。下面为你详细介绍其用法。

2025-04-27 11:19:47 301

原创 Apache PDFBox

Apache PDFBox 是一个用于处理 PDF 文档的开源 Java 库,由 Apache 软件基金会开发和维护。它提供了丰富的功能,允许开发者在 Java 应用程序中创建、读取、修改和提取 PDF 文件中的信息。

2025-04-22 10:59:30 997

原创 @Valid VS @Validated

在 Spring 相关的开发中,@NotEmpty并非 Spring 框架直接提供的注解,而是 JSR-303(Bean Validation 1.0)和 JSR-349(Bean Validation 1.1)规范中定义的注解,在 Spring 项目里,通常借助 Hibernate Validator 这个实现来使用它。下面为你详细介绍@NotEmpty。

2025-04-05 14:28:22 788

原创 Swagger @ApiOperation

注解并非 Spring Boot 自带的注解,而是来自 Swagger 框架,Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,而主要用于为 API 接口的操作添加描述信息。

2025-04-05 14:19:02 779

原创 Redis 梳理汇总目录

Redis 哨兵集群(Sentinel)与 Cluster 集群对比-CSDN博客如何快速将大规模数据保存到Redis集群-CSDN博客Redis的一些高级指令-CSDN博客

2025-04-01 16:33:10 289

原创 Redis的一些高级指令

在 Redis 中,pipeline(管道,你可能是想问这个而不是pinline)是一种用于批量执行命令的机制,它允许客户端将多个命令一次性发送到 Redis 服务器,而不需要等待每个命令的响应,然后一次性接收所有命令的响应。这种方式可以减少客户端和服务器之间的网络往返次数,提高执行效率。下面以 Python 的redis-py客户端库为例,展示如何使用管道来批量执行命令:python在上述代码中:首先创建了一个 Redis 客户端连接对象r。然后通过创建了一个管道对象pipe,并使用with。

2025-04-01 16:31:32 609

原创 如何快速将大规模数据保存到Redis集群

从 Redis 读取数据时再进行解压缩,这样可以减少数据在网络传输和 Redis 存储中所占用的空间,提高存储和读取的速度。:将大规模数据按照一定的规则进行分片,然后并行地将各个分片的数据保存到 Redis 集群中。在使用多线程或多进程时,要注意处理好线程安全和资源竞争的问题,确保数据的一致性和正确性。在实际应用中,需要根据具体的业务场景和数据特点,综合运用这些策略来达到最佳的性能表现。使用这些批量操作可以减少与 Redis 集群的交互次数,从而提高数据保存的效率。:避免逐条插入数据,Redis 提供了。

2025-04-01 16:15:09 518

原创 Redis 哨兵集群(Sentinel)与 Cluster 集群对比

redis-cli --cluster set-timeout 15000 # 调整节点超时时间。Master[主节点宕机] --> Detect[从节点检测到主FAIL]redis-cli --cluster rebalance # 自动平衡槽位分布。Elect -->|获得多数主节点同意| Promote[晋升为新主]遵循先到先得原则(First-Come-First-Served)# 通过min-replicas-to-write配置预防。实际选型需结合数据规模、业务特征和技术栈成熟度综合决策。

2025-04-01 16:01:02 1341

原创 RAG专栏:提示工程

提示工程(Prompt Engineering)是指设计和优化向语言模型(如 GPT 系列、BERT、文心一言、通义千问等)输入的文本提示,以引导模型生成更准确、有用、符合预期的输出的过程。提示工程通过为大模型设计高效且精确的提示词,能够有效引导大模型理解输入信息,从而提升生成的准确性与相关性。

2025-03-27 12:01:45 219

原创 RAG专栏:混合检索

混合检索,又称融合检索 / 多路召回,是指在检索过程中同时采用多种检索方式,并将各类检索结果进行融合,从而得到最终的检索结果。混合检索的优势在于能够充分利用不同检索方式的优点,弥补各自的不足,从而提升检索的准确性和效率。

2025-03-27 11:10:12 713

原创 RAG专栏:向量数据库

Chroma、Qdrant 适合快速开发和轻量化部署,Milvus/Zilliz 适用于高性能和可扩展性需求,FAISS 适合不要求持久化且对性能有极致要求,Weaviate 和 LanceDB 在多模态数据处理中表现出色,PGVector、Elasticsearch 和 Redis 则在现有数据库的高效集成中占优势,而 Pinecone 是云托管场景的理想选择。通过这种索引和检索机制,检索到的向量为生成模型提供了必要的上下文信息,使模型能够依据当前的语义上下文生成更加精准和相关的响应。

2025-03-26 20:16:24 403

原创 RAG专栏:嵌入技术

Embedding 嵌入是指将文本、图像、音频、视频等形式的信息映射为高维空间中的密集向量表示。这些向量在语义空间中起到坐标的作用,捕捉对象之间的语义关系和隐含的意义。通过在向量空间中进行计算(例如余弦相似度),可以量化和衡量这些对象之间的语义相似性。在具体实现中,嵌入的每个维度通常对应文本的某种特征,例如性别、类别、数量等。通过多维度的数值表示,计算机能够理解并解析文本的复杂语义结构。

2025-03-26 17:06:55 433

原创 RAG专栏:分块策略

文档数据(Documents)经过解析后,通过分块技术将信息内容划分为适当大小的文档片段(chunks),从而使 RAG 系统能够高效处理和精准检索这些片段信息。分块的本质在于依据一定逻辑或语义原则,将较长文本拆解为更小的单元。分块策略有多种,各有侧重,选择适合特定场景的分块策略是提升 RAG 系统召回率的关键。

2025-03-26 16:48:23 1206

原创 RAG专栏:文档解析

一般企业内部数据源多样性:如关系型数据 mysql,非关系型数据:redis,时序数据:InfluxDB及其他 ES 等,还有文档类的:pdf,word,ppt,excel,cvs,MD,json,xml,html等,针对这些不同的数据格式,我们需要针对各种类型做出对应处理。主要运用LangChain Document Loaders来对应文档操作。

2025-03-26 12:01:59 285

原创 RAG专栏:RAG快速实战

RAG专栏:RAG实战,从原理到代码讲解

2025-03-26 11:34:32 938

原创 RAG专栏:RAG的场景及技术原理

RAG 模型的核心思想在于通过检索与生成的有机结合,弥补大模型在处理领域问题和实时任务时的不足。传统的生成模型在面对复杂问题时,往往由于知识储备不足,生成出错误或无关的回答。而 RAG 通过检索模块获取相关的背景信息,使生成模块能够参考这些信息,从而生成更具可信度和准确性的答案。这种方法不仅增强了生成内容的准确性,还提高了模型在应对特定领域知识和动态信息时的适应能力。

2025-03-26 11:01:35 760

原创 Springboot事务篇

通过。

2025-03-13 12:26:15 2789

原创 Java 什么是线程安全及如何实现线程安全

通过 JVM 内置锁(Monitor)实现互斥访问,确保同一时间只有一个线程执行临界区代码。:基于 CAS(Compare-and-Swap)实现无锁线程安全操作,适用于简单原子操作。理解线程安全的三要素(原子性、可见性、有序性)是解决多线程问题的关键。死锁(Deadlock):多个线程互相等待对方释放锁,导致永久阻塞。:保证变量的可见性和禁止指令重排序,但不保证原子性。:操作不可分割,要么全部完成,要么全部不执行。更灵活的锁控制(如可中断、超时、公平锁)。单一变量的原子操作(如计数器、标志位)。

2025-03-12 18:31:26 1941

原创 ReentrantLock VS Synchronized

以下是和的对比,针对每个不同点给出,帮助直观理解它们的差异。

2025-03-12 17:15:05 1121

原创 Spring Bean

三者初始化方式同时出现时候的顺序依次为:@PostConstruct 标注方法, 实现 InitializingBean 接口的 afterPropertiesSet() 方法,最后才是自定义初始化方法如@Bean(initMethod = "initUserFactory")。

2025-03-08 22:49:37 300

原创 Spring 构造器注入和setter注入的比较

在 Spring 框架中,构造器注入(Constructor Injection)和 Setter 注入(Setter Injection)是实现依赖注入(DI)的两种主要方式。它们的核心区别在于依赖注入的时机、代码设计理念以及适用场景。以下是两者的详细比较:优点:不可变性:依赖字段可声明为 ,确保线程安全和对象状态一致性。明确性:强制要求所有必需依赖,避免 。代码简洁性:结合 Lombok 的 ,可自动生成构造方法。兼容测试:易于在单元测试中手动注入依赖。缺点:灵活性不足:对可选依赖支持较弱,需通过重载构

2025-03-07 18:24:33 1347

原创 IOC 篇

Spring IOC(Inversion of Control,控制反转)是 Spring 框架的核心特性之一,它是一种设计理念,用于实现对象的创建和依赖关系的管理。

2025-03-07 18:21:52 447

原创 SpringBoot 外化配置及加载顺序

Spring Boot 的配置加载顺序以“就近覆盖”为原则,同时支持灵活的外部化配置。理解这一机制有助于在不同环境(开发、测试、生产)中高效管理配置。Spring Boot 的外化配置加载顺序遵循特定的优先级规则,高优先级的配置会覆盖低优先级的。分隔符定义不同 Profile 的配置(需 Spring Boot 2.4+)。通过环境变量或系统属性传递的 JSON 格式配置,如。或 YAML 文件(如。或 YAML 文件(如。或 YAML 文件(如。或 YAML 文件(如。(命令行参数优先级最高)。

2025-03-06 08:08:34 495

原创 Springboot 梳理

命令行界面@Import({AutoConfigurationImportSelector.class})

2025-03-05 22:29:10 538

原创 Redis 篇

全表查询:keys分页查询:游标查询:

2025-03-05 15:25:46 357

空空如也

空空如也

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

TA关注的人

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