{
  "schemaVersion": 1,
  "site": "https://tio-boot.com",
  "pages": [
    {
      "id": "about.md",
      "title": "Abount",
      "language": "und",
      "chapter": "overview",
      "url": "https://tio-boot.com/about.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/about.md",
      "source": "about.md",
      "description": "Abount About Author James 詹波 github 原来是这样的 JFinal (jfinal@qq.com) Yao Wu Tan 谭耀武 github 程序员中最会拉筋的 CTO Tong Li 李通 github (litongjava001@gmail.com ) Tong Li 简介 Tong Li 邮箱：litongja...",
      "keywords": [],
      "status": "document",
      "sha256": "2fb9243efe3a401fe1924e02703ad3ee077c3dad7578273803f2deb719729e74"
    },
    {
      "id": "ai-retrieval.md",
      "title": "AI 检索与文档数据入口",
      "language": "und",
      "chapter": "overview",
      "url": "https://tio-boot.com/ai-retrieval.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/ai-retrieval.md",
      "source": "ai-retrieval.md",
      "description": "AI 检索与文档数据入口 站点在每次构建时从当前 Markdown 正文生成检索资源，章节移动、改名或更新后无需手工维护另一份语料。 离线搜索与 AI 语料 本站支持离线搜索和完整 AI 语料读取。 首次联网访问后，等待下方显示“离线已就绪”，即可在同一浏览器、同一站点地址下断网搜索、打开搜索结果及读取语料。离线缓存包含搜索索引与 worker、页面程...",
      "keywords": [],
      "status": "document",
      "sha256": "2a54ddcccc5fe8aac248922aca23cc6f83c940a2e0133403d0ba1de8622399fd"
    },
    {
      "id": "en/1 Quick Start/1.0 Quick Start.md",
      "title": "Quick Start",
      "language": "en",
      "chapter": "en/overview",
      "url": "https://tio-boot.com/en/1%20Quick%20Start/1.0%20Quick%20Start.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/en/1%20Quick%20Start/1.0%20Quick%20Start.md",
      "source": "en/1 Quick Start/1.0 Quick Start.md",
      "description": "Quick Start",
      "keywords": [],
      "status": "placeholder",
      "sha256": "81b69564c81816b5cfc0a5203d9dd384c270037954151fb87f3e9b5289fa6079"
    },
    {
      "id": "README.md",
      "title": "Home",
      "language": "und",
      "chapter": "overview",
      "url": "https://tio-boot.com/",
      "markdownUrl": "https://tio-boot.com/ai/pages/README.md",
      "source": "README.md",
      "description": "--- home: true title: Home heroImage: ./logo.png heroText: Tio-Boot tagline: 基于 Java 的快速开放框架 actions: - text: Get Started link: /zh/01 tio-boot 简介/02.md type: p",
      "keywords": [],
      "status": "document",
      "sha256": "8edd965bcfd9265ec25788347d39d42b52013d12cf3662288bfeb4256e308da0"
    },
    {
      "id": "zh/01_tio-boot 简介/01.md",
      "title": "tio-boot：新一代高性能 Java Web 开发框架",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/01.md",
      "source": "zh/01_tio-boot 简介/01.md",
      "description": "tio-boot：新一代高性能 Java Web 开发框架 概述 tio-boot：好用、快速、节约时间的高性能 Java Web 开发框架。 tio-boot 是一款轻量级、高性能的 Java Web 开发框架，以更快、更小、更简单为目标，为开发者带来卓越的性能与开发效率。相比传统框架，tio-boot 提供显著优势： 并发性能提升：快 2 ～ 3 ...",
      "keywords": [],
      "status": "document",
      "sha256": "3a9463e4140dbb1b3a91f3bdc830bb2726a7461fcefe74279f07dab48a4a96ef"
    },
    {
      "id": "zh/01_tio-boot 简介/02.md",
      "title": "tio-boot 入门示例",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/02.md",
      "source": "zh/01_tio-boot 简介/02.md",
      "description": "tio-boot 入门示例 创建新项目 项目名称： tio-boot-web-hello 开源仓库地址： https://github.com/litongjava/tio-boot-web-hello 添加依赖 TioBoot 已在 Maven 中央仓库发布。 Maven Central 上的 TioBoot 如果您使用 Java 8 进行开发，请在...",
      "keywords": [],
      "status": "document",
      "sha256": "1eb62e10436543edae8ca67d72d63cbe476128a3e9984a4bcfb9a9d8518076ba"
    },
    {
      "id": "zh/01_tio-boot 简介/03.md",
      "title": "Tio-Boot 配置 : 现代化的配置方案",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/03.md",
      "source": "zh/01_tio-boot 简介/03.md",
      "description": "Tio-Boot 配置 : 现代化的配置方案 简介 Tio-Boot 是一个基于 Java 的轻量级框架，提供了灵活的配置管理功能。它支持多环境配置、从多种来源读取配置，并提供了优先级管理，以满足不同场景下的需求。本指南将详细介绍 Tio-Boot 的配置方法及常见配置项的使用。 配置文件概述 Tio-Boot 使用 nexus.io.tio.util...",
      "keywords": [],
      "status": "document",
      "sha256": "cc1627578a791aecaba275c700061007e1540d3ae390b163fe4e5b5a7f9e6d26"
    },
    {
      "id": "zh/01_tio-boot 简介/04.md",
      "title": "tio-boot 整合 Logback",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/04.md",
      "source": "zh/01_tio-boot 简介/04.md",
      "description": "tio-boot 整合 Logback tio-boot 并未绑定任何特定的日志框架，而是使用 slf4j 作为日志门面。本文将介绍如何在开发 tio-boot 应用时集成 Logback 作为日志实现。 Logback 建议在开发 tio-boot 应用时使用 Logback 作为日志实现。以下是集成 Logback 的详细步骤： 1. 引入 Log...",
      "keywords": [],
      "status": "document",
      "sha256": "ea65b1881e7fa71a65f4bdbfc22b224553aa6e91b3a38cb0dbdecdee4b4189fd"
    },
    {
      "id": "zh/01_tio-boot 简介/05.md",
      "title": "tio-boot 整合 hotswap-classloader 实现热加载",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/05.md",
      "source": "zh/01_tio-boot 简介/05.md",
      "description": "tio-boot 整合 hotswap-classloader 实现热加载 简介 在现代软件开发中，快速迭代和高效测试是提升开发效率的关键。传统的开发流程中，每次代码变更后都需要重启应用程序，这不仅耗时且影响开发体验。为了优化这一过程，本文介绍了如何将 hotswap-classloader 与 tio-boot 结合使用，实现 Java 应用的热加载...",
      "keywords": [],
      "status": "document",
      "sha256": "90b0e5b882f501a961150711d7388dc92a9bb98ce9379807efa7cfbcf05ad713"
    },
    {
      "id": "zh/01_tio-boot 简介/06.md",
      "title": "自行编译 tio-boot",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/06.md",
      "source": "zh/01_tio-boot 简介/06.md",
      "description": "自行编译 tio-boot tio-boot 作为 TIO 生态系统中的核心组件，旨在简化 TIO 应用程序的引导过程。虽然 tio-boot 已经相对稳定，并且维护者保持每月发布一次的频率，但有时可能希望体验最新的功能和改进，此时手动编译安装是一个理想的选择。本文将详细介绍如何手动编译和安装 tio-boot 及其周边依赖项。 前言 TIO（Tenc...",
      "keywords": [],
      "status": "document",
      "sha256": "01d754d81296d177f7ca250d72d54987d13cc6f874b317cfa143eb860cec0c2b"
    },
    {
      "id": "zh/01_tio-boot 简介/07.md",
      "title": "最新版本",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/07.md",
      "source": "zh/01_tio-boot 简介/07.md",
      "description": "最新版本 最新版本如下",
      "keywords": [],
      "status": "document",
      "sha256": "b0140d50b220e0b3e2c2b7f8593ebeb2bf911066ea66dbe54915b394d16a2673"
    },
    {
      "id": "zh/01_tio-boot 简介/08.md",
      "title": "开发规范",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/08.md",
      "source": "zh/01_tio-boot 简介/08.md",
      "description": "开发规范 模版引擎命名规范 tio-boot 支持多种模版引擎,以 enjoy 模版引擎为例,介绍命名规范 enjoy-templates: enjoy 模版目录 enjoy-sql :enjoy sql 目录 sql-templates :SqlTemplates 目录 接口命名规范 1. 接口概述 本系统提供三个不同权限级别的页面查询接口，分别适用...",
      "keywords": [],
      "status": "document",
      "sha256": "2c82f64d95ff320ee0a1df101d104943e23debdd25ce23591112d47ddc7899d7"
    },
    {
      "id": "zh/01_tio-boot 简介/readme.md",
      "title": "01_tio-boot 简介",
      "language": "zh-CN",
      "chapter": "zh/01_tio-boot 简介",
      "url": "https://tio-boot.com/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/01_tio-boot%20%E7%AE%80%E4%BB%8B/readme.md",
      "source": "zh/01_tio-boot 简介/readme.md",
      "description": "01_tio-boot 简介 本目录包含 9 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-boot：新一代高性能 Java Web 开发框架》。 : 文档《tio-boot 入门示例》。 : 文档《Tio-Boot 配置 : 现代化的配置方案》。 : 文档《tio-b...",
      "keywords": [],
      "status": "document",
      "sha256": "2c6c45d6df2e623068911c552f27b7743cb7b5132d1d267d1f67ccf3fadf287e"
    },
    {
      "id": "zh/02_部署/01.md",
      "title": "使用 Maven Profile 实现分环境打包 tio-boot 项目",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/01.md",
      "source": "zh/02_部署/01.md",
      "description": "使用 Maven Profile 实现分环境打包 tio-boot 项目 在软件开发过程中，不同的运行环境（如开发环境、生产环境、测试环境等）通常需要不同的配置和依赖。Maven 提供了 profiles 功能，允许开发者根据不同的需求切换构建配置，从而实现分环境打包。本指南将详细介绍如何通过 Maven Profile 配置，实现针对开发、生产、二进...",
      "keywords": [],
      "status": "document",
      "sha256": "80fbf02ded07333a283ed729add6a3dfe1c91c3b4b6c0fc4ce272770b727a7fe"
    },
    {
      "id": "zh/02_部署/02.md",
      "title": "Maven 项目配置详解：依赖与 Profiles 配置",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/02.md",
      "source": "zh/02_部署/02.md",
      "description": "Maven 项目配置详解：依赖与 Profiles 配置 本文档详细介绍了一个 Maven 项目的 pom.xml 文件配置，包括项目属性、依赖管理以及不同环境下的 Profiles 配置。通过本文档，您将了解如何配置项目的构建参数、依赖库以及针对开发、生产和其他特定环境的定制化设置。 目录 项目属性配置 在 pom.xml 中，<properties...",
      "keywords": [],
      "status": "document",
      "sha256": "87b67f705f54bd0f6a05c36affb18ea7bbc4e5755214893c71cb119364704d3d"
    },
    {
      "id": "zh/02_部署/03.md",
      "title": "tio-boot 打包成 FatJar",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/03.md",
      "source": "zh/02_部署/03.md",
      "description": "tio-boot 打包成 FatJar 在现代微服务和云原生应用的开发中，快速构建、部署和启动应用显得尤为重要。本文将介绍如何使用 tio-boot 将 Java 应用打包成轻量级的 FastJar，并在不同操作系统上进行启动和配置。 1. 项目打包 首先，确保已经正确配置了 Java 环境变量。以 Windows 为例，设置 JAVA_HOME 并使...",
      "keywords": [],
      "status": "document",
      "sha256": "d8a70a7a442cb7d2d4de09e881f342f9ac728d111a3c8bf6ef10d7ace28d35fd"
    },
    {
      "id": "zh/02_部署/04.md",
      "title": "使用 GraalVM 构建 tio-boot Native 程序",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/04.md",
      "source": "zh/02_部署/04.md",
      "description": "使用 GraalVM 构建 tio-boot Native 程序 [toc] 本文将介绍如何使用 GraalVM 构建基于 tio-boot 的原生程序。这对于希望构建快速高效的 Java 服务器应用程序的开发人员尤其有用。我们将从安装必要的依赖开始，逐步构建一个可以独立于 JVM 运行的本地二进制镜像。 代码已提交至 GitHub 仓库。 编写代码 ...",
      "keywords": [],
      "status": "document",
      "sha256": "5295655f5f6aba3a6b58b69ace63be15d56086aa23b62efd353090cc375307d5"
    },
    {
      "id": "zh/02_部署/05.md",
      "title": "使用 Docker 部署 tio-boot",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/05.md",
      "source": "zh/02_部署/05.md",
      "description": "使用 Docker 部署 tio-boot 本文档详细介绍了如何使用 Docker 部署 tio-boot 项目，包括安装 Java 和 Maven、克隆项目、使用 Docker 运行和构建镜像等步骤。 安装 Java 首先，创建目录并下载 Oracle JDK 8u411： 解压并配置 Java 环境变量： 验证 Java 安装： 安装 Maven ...",
      "keywords": [],
      "status": "document",
      "sha256": "13bcba486ad1af0478aaa21e776fb3d452560610d8514e9a4579105c13399552"
    },
    {
      "id": "zh/02_部署/06.md",
      "title": "部署到 Fly.io",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/06.md",
      "source": "zh/02_部署/06.md",
      "description": "部署到 Fly.io Fly.io 简介 Fly.io 是一个专注于将全栈应用和数据库部署到用户附近位置的平台。它通过将容器转换为运行在全球 30 多个地区的微型虚拟机（micro-VM），显著降低了延迟并提高了应用的响应速度。 部署到 Fly.io 本文将通过 https://github.com/litongjava/tio-boot-web-he...",
      "keywords": [],
      "status": "document",
      "sha256": "4691e670aecd41ef18defe7fac9ffd973510ca7339fed50f4f00ddb54c1dc5eb"
    },
    {
      "id": "zh/02_部署/07.md",
      "title": "部署到 AWS Lambda",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/07.md",
      "source": "zh/02_部署/07.md",
      "description": "部署到 AWS Lambda 将应用程序部署到 AWS Lambda 需要进行一些修改和配置。以下是详细步骤： 1. 打包应用程序 确保应用程序已经使用 Maven 打包： 2. 创建 Lambda 函数包 创建一个新的目录用于存放 Lambda 函数包，并将打包好的 JAR 文件复制到该目录： 在 lambda-package 目录下创建一个 boo...",
      "keywords": [],
      "status": "document",
      "sha256": "7eb204ea8b278e67d10e800ea7b72b0c01ca5d4770f1e689dc718f3122af6cb6"
    },
    {
      "id": "zh/02_部署/08.md",
      "title": "到阿里云云函数",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/08.md",
      "source": "zh/02_部署/08.md",
      "description": "到阿里云云函数 阿里云云函数简介 阿里云的 serverless 产品 https://fcnext.console.aliyun.com/overview 部署到阿里云云函数 如果要将应用程序部署到阿里云云函数（Function Compute），需要进行以下步骤： 1. 创建函数计算项目 首先，确保已经安装了阿里云函数计算的 CLI 工具 fun：...",
      "keywords": [],
      "status": "document",
      "sha256": "4d80895fddd42c7664267e06348130addf167c0225a523171c7eb80288d7857b"
    },
    {
      "id": "zh/02_部署/09.md",
      "title": "使用 Deploy 工具部署",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/09.md",
      "source": "zh/02_部署/09.md",
      "description": "使用 Deploy 工具部署 工具简介 为了简化部署流程并提高部署效率，我开发了一款名为 deploy 的工具，专用于将 tio-boot 工程快速部署到自有服务器上。该工具包含客户端和服务端两部分，用户需先在服务器上安装服务端，之后即可通过客户端进行部署操作。 工具已开源，源码地址如下： deploy 工具 服务端安装 有关服务端的详细安装步骤，请参...",
      "keywords": [],
      "status": "document",
      "sha256": "abb593ff3d55e3c2ba4fe010bcda0900f5eb8905e5cd4de6cad0188b4a14c8be"
    },
    {
      "id": "zh/02_部署/10.md",
      "title": "使用Systemctl启动项目",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/10.md",
      "source": "zh/02_部署/10.md",
      "description": "使用Systemctl启动项目 一、前提条件 操作系统：Linux（内核 ≥ 3.0，支持 systemd）。 拥有 root 或具有相应权限的用户。 已联网，能访问外部下载源。 二、安装 Java 1.8.0_411 创建下载目录并下载 JDK： 解压到系统标准路径： 配置环境变量（可添加到 /etc/profile 或 ~/.bashrc）： 验证...",
      "keywords": [],
      "status": "document",
      "sha256": "f5e23ea7d8a120801b5aaa74d49660ff2fa9563de1ee32cbfdea2864ce18eaec"
    },
    {
      "id": "zh/02_部署/11.md",
      "title": "使用 Jenkins 部署 Tio-Boot 项目",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/11.md",
      "source": "zh/02_部署/11.md",
      "description": "使用 Jenkins 部署 Tio-Boot 项目 在这篇博客中，我们将介绍如何使用 Jenkins 自动化部署 Tio-Boot 项目，帮助开发者实现项目的持续集成和部署（CI/CD）。本文详细介绍了从 Jenkins 安装、配置到项目构建、部署的每一步操作，并附带相关的原理说明。 Jenkins 简介 Jenkins 是一个开源的自动化服务器，广泛...",
      "keywords": [],
      "status": "document",
      "sha256": "797a155446aa3235b26e8631e2e8ed36c135664ec4baaa902a563842ff74599d"
    },
    {
      "id": "zh/02_部署/12.md",
      "title": "使用 Nginx 反向代理 Tio-Boot",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/12.md",
      "source": "zh/02_部署/12.md",
      "description": "使用 Nginx 反向代理 Tio-Boot 1. 简介 在高并发场景下，Tio-Boot 作为 Java 的高性能框架，配合 Nginx 反向代理可以进一步提升系统的稳定性和性能。本文将介绍如何通过配置 Nginx 反向代理 Tio-Boot 应用，并着重介绍如何通过 Keep-Alive 长连接来减少连接开销，提升整体性能。 2. 什么是 Keep...",
      "keywords": [],
      "status": "document",
      "sha256": "f1c53d60985c156f35ce6ebba6af4f35d5dd267173181ca2351e6b0f96aed53d"
    },
    {
      "id": "zh/02_部署/13.md",
      "title": "使用 Supervisor 管理 Java 应用",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/13.md",
      "source": "zh/02_部署/13.md",
      "description": "使用 Supervisor 管理 Java 应用 Supervisor 是一个基于 Python 的进程管理工具，可用于在后台启动、监控和管理各类应用程序。本文档详细介绍了如何使用 Supervisor 来管理一个 Java 应用，从安装、配置到启动和监控，帮助构建一个稳定的运行环境。 安装 Supervisor 如果尚未安装 Supervisor，可...",
      "keywords": [],
      "status": "document",
      "sha256": "1a6470e6ba39579a3066d2df23207fe9e30912b3e7b0e9fb59c14781b0d8ee29"
    },
    {
      "id": "zh/02_部署/14.md",
      "title": "历史部署页与替代方案",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/14.md",
      "source": "zh/02_部署/14.md",
      "description": "历史部署页与替代方案 本页保留历史路径，不再承载独立部署步骤。按部署目标选择已有完整章节： ：依赖如何随应用交付。 ：构建可执行 JAR。 ：镜像与容器部署。 ：Linux 服务管理。 ：外部访问入口。 先确认 Java 与依赖版本，手动完成项目要求的数据库初始化，再启动应用。重启不应自动建表、清空数据或重置管理员。Windows 上重新打包遇到 JA...",
      "keywords": [],
      "status": "document",
      "sha256": "22ed3983304643c9063afa99322adea07a7ddee5a7f04e452da4195b65ffa7c8"
    },
    {
      "id": "zh/02_部署/15.md",
      "title": "胖包与瘦包的打包与部署",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/15.md",
      "source": "zh/02_部署/15.md",
      "description": "胖包与瘦包的打包与部署 在现代软件开发中，高效的打包与部署是确保应用程序稳定运行和快速迭代的关键。尤其是在使用 Java 开发的项目中，选择合适的打包方式不仅影响应用程序的体积和启动速度，还直接关系到部署的便捷性和灵活性。本文将深入探讨 胖包（Fat Package）与 瘦包（Thin Package）的概念、优势，并详细介绍如何使用 deploy 工...",
      "keywords": [],
      "status": "document",
      "sha256": "6b5c963d997839bb2a8866d32cdde15049601a569516bd1540aa1eec8d9cafbc"
    },
    {
      "id": "zh/02_部署/readme.md",
      "title": "02_部署",
      "language": "zh-CN",
      "chapter": "zh/02_部署",
      "url": "https://tio-boot.com/zh/02_%E9%83%A8%E7%BD%B2/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/02_%E9%83%A8%E7%BD%B2/readme.md",
      "source": "zh/02_部署/readme.md",
      "description": "02_部署 本目录包含 25 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用 Maven Profile 实现分环境打包 tio-boot 项目》。 : 文档《Maven 项目配置详解：依赖与 Profiles 配置》。 : 文档《tio-boot 打包成 FatJar》。...",
      "keywords": [],
      "status": "document",
      "sha256": "89d0cef58180754253a837ce9ac6134c35242a94ab4651028719af787722b405"
    },
    {
      "id": "zh/03_配置/01.md",
      "title": "配置参数",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/01.md",
      "source": "zh/03_配置/01.md",
      "description": "配置参数 配置文件 tio-boot 默认支持加载两个配置文件 src/main/resources/.env 环境变量配置文件,不能提交到 git 中 src/main/resources/app.properties 其他配置文件 常用配置 设置静态文件目录 将 app.properties 中配置 将静态文件放到 pages 目录下即可 Defa...",
      "keywords": [],
      "status": "document",
      "sha256": "a073c6db03c898b26b38f5bf07b7c59f0f9ac970f972774f6826fcb2a3288cfb"
    },
    {
      "id": "zh/03_配置/02.md",
      "title": "服务器监听器",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/02.md",
      "source": "zh/03_配置/02.md",
      "description": "服务器监听器 1. 实现自定义服务器监听器 为了在 Tio-Boot 项目中创建一个自定义的服务器监听器，我们可以通过实现 TioBootServerListener 接口来拦截服务器启动的关键点，并添加一些自定义的启动逻辑。下面是一个实现自定义监听器的示例，MyServerListener 类负责在服务器启动后执行额外的操作。 示例代码 说明： bo...",
      "keywords": [],
      "status": "document",
      "sha256": "5be5cae12f23e6d035a107450c35cae83f376eb6d85d5ec4b303b18d53852f71"
    },
    {
      "id": "zh/03_配置/03.md",
      "title": "内置缓存系统 AbsCache",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/03.md",
      "source": "zh/03_配置/03.md",
      "description": "内置缓存系统 AbsCache 在构建高性能的网络应用时，缓存系统起着至关重要的作用。Tio-boot 框架内置了一种轻量级的缓存系统——AbsCache。本文将详细介绍如何使用 AbsCache 来缓存数据，并通过 CacheFactory 实现缓存实例的注册和管理。Tio-boot 框架内部状态都使用 AbsCache 来进行存储 简介 1. 什么...",
      "keywords": [],
      "status": "document",
      "sha256": "3cf6077d5fa950810adcea7995a60e730a01d68f550f799123e4008af26d36bc"
    },
    {
      "id": "zh/03_配置/04.md",
      "title": "使用 Redis 作为内部 Cache",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/04.md",
      "source": "zh/03_配置/04.md",
      "description": "使用 Redis 作为内部 Cache 内部 Cache 负责存储的信息 在 Tio-boot 运行过程中，内部状态信息会被存入缓存系统 AbsCache。以下是 Tio-boot 内部会缓存的一些典型信息： HTTP 会话（Session）数据：启用会话管理时，浏览器的会话信息会存储在缓存中，以便在后续请求中快速访问。默认情况下，使用 Concurr...",
      "keywords": [],
      "status": "document",
      "sha256": "845b8f120760d33444b03434f5528b10d51a283f23f22bea5286eff46d0b6103"
    },
    {
      "id": "zh/03_配置/05.md",
      "title": "静态文件处理器",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/05.md",
      "source": "zh/03_配置/05.md",
      "description": "静态文件处理器 在现代 Web 开发中，静态资源的高效管理和分发对提升用户体验至关重要。TioBoot 作为一款高性能的 Java Web 框架，提供了内置的静态文件处理器 DefaultStaticResourceHandler，实现了 StaticResourceHandler 接口。然而，在某些复杂场景下，我们可能需要根据不同的域名加载不同目录下...",
      "keywords": [],
      "status": "document",
      "sha256": "413901c90314e047590356b87eae95ad8d5970c051eaf6ce779c7c22f1b96654"
    },
    {
      "id": "zh/03_配置/06.md",
      "title": "基于域名的静态资源隔离",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/06.md",
      "source": "zh/03_配置/06.md",
      "description": "基于域名的静态资源隔离 在多站点部署或不同环境隔离的场景下，我们可以通过基于域名的配置实现资源隔离。不同的域名对应不同的配置文件，进而映射到服务器文件系统中的不同目录。这样可以在一台服务器上为多个站点提供服务，每个站点的静态资源都存放在独立的目录中。在 tio-boot 中可以使用自定义 StaticResourceHandler 实现 数据库表定义 ...",
      "keywords": [],
      "status": "document",
      "sha256": "21eb3cfe867cd008ece9051324faf518be97a92626588fca717591f4772352e0"
    },
    {
      "id": "zh/03_配置/07.md",
      "title": "DecodeExceptionHandler",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/07.md",
      "source": "zh/03_配置/07.md",
      "description": "DecodeExceptionHandler DecodeExceptionHandler 是 tio-boot 的一个核心组件，用于处理消息解码失败的情况。这类失败通常表明可能存在网络攻击。本文档将详细介绍如何配置和实现自定义的 DecodeExceptionHandler，以提升您的 tio-boot 服务器的安全性和稳定性。 目录 服务器启动前的...",
      "keywords": [],
      "status": "document",
      "sha256": "b9a19434b8e4e947b07426eae0d289bfc5ffeafe88aeafc939e552ce2262c0b9"
    },
    {
      "id": "zh/03_配置/08.md",
      "title": "开启虚拟线程（Virtual Thread）",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/08.md",
      "source": "zh/03_配置/08.md",
      "description": "开启虚拟线程（Virtual Thread） 一、背景说明 自 Java 21 起，虚拟线程（Virtual Thread） 正式成为稳定特性（JEP 444），为高并发场景提供了一种低成本、高并发、阻塞友好的线程模型。 虚拟线程由 JVM 调度，不再与操作系统线程一一对应，在面对大量阻塞型任务（如数据库、RPC、文件 IO）时，能够显著降低线程创建、...",
      "keywords": [],
      "status": "document",
      "sha256": "5256a3f01395e6a49f72e917370c274585ad8a80cd8801ea36f993286de436f4"
    },
    {
      "id": "zh/03_配置/09.md",
      "title": "框架级错误通知",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/09.md",
      "source": "zh/03_配置/09.md",
      "description": "框架级错误通知 一、背景介绍 在实际生产环境中，应用启动阶段的异常（例如数据库连接失败、Redis 连接异常、注解扫描失败、服务启动失败等）如果不能被及时感知，往往会导致问题发现滞后。 TioBoot 提供了框架级通知能力，可以在应用启动的关键阶段捕获异常并通过自定义通知通道发送告警信息，从而实现启动即感知、失败即通知。 本文将详细介绍： 如何实现自定...",
      "keywords": [],
      "status": "document",
      "sha256": "dde72a90917fed87b623125f6bbca467d63bc08bdc337f10bca27b860ee71d1d"
    },
    {
      "id": "zh/03_配置/readme.md",
      "title": "03_配置",
      "language": "zh-CN",
      "chapter": "zh/03_配置",
      "url": "https://tio-boot.com/zh/03_%E9%85%8D%E7%BD%AE/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/03_%E9%85%8D%E7%BD%AE/readme.md",
      "source": "zh/03_配置/readme.md",
      "description": "03_配置 本目录包含 10 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《配置参数》。 : 文档《服务器监听器》。 : 文档《内置缓存系统 AbsCache》。 : 文档《使用 Redis 作为内部 Cache》。 : 文档《静态文件处理器》。 : 文档《基于域名的静态资源隔...",
      "keywords": [],
      "status": "document",
      "sha256": "ce95e0dc45563e1ea67e1af687f43178b12d0638042956dae3973061a073f65e"
    },
    {
      "id": "zh/04_原理/01.md",
      "title": "生命周期",
      "language": "zh-CN",
      "chapter": "zh/04_原理",
      "url": "https://tio-boot.com/zh/04_%E5%8E%9F%E7%90%86/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/04_%E5%8E%9F%E7%90%86/01.md",
      "source": "zh/04_原理/01.md",
      "description": "生命周期 tio-boot 框架的生命周期如下 初始化 Bean 容器 扫描所有 Class,查找 AopClass,初始化@nexus.io.jfinal.aop.annotation.BeforeStartConfiguration 标记的类 启动服务器,监听端口 初始化@nexus.io.jfinal.aop.annotation.Configu...",
      "keywords": [],
      "status": "document",
      "sha256": "f1bc38f594b680dfd0d8722ce1f8085cd4464d87f7497c5d861de2f1c6cd4894"
    },
    {
      "id": "zh/04_原理/02.md",
      "title": "请求处理流程",
      "language": "zh-CN",
      "chapter": "zh/04_原理",
      "url": "https://tio-boot.com/zh/04_%E5%8E%9F%E7%90%86/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/04_%E5%8E%9F%E7%90%86/02.md",
      "source": "zh/04_原理/02.md",
      "description": "请求处理流程 引言 tio-boot 是基于 Java AIO（Asynchronous I/O，异步 I/O）开发的高性能网络应用框架。它利用 Java 的异步 I/O 和事件驱动架构，为开发者提供了一个高效、可扩展的网络通信解决方案，特别适用于需要高并发和低延迟的现代网络应用。本文将通过解析一个请求的异常堆栈，深入探讨 tio-boot 框架的请求...",
      "keywords": [],
      "status": "document",
      "sha256": "0246130519751f801dbb4f3986d45f91b1753bf847319e0c461c907834484be9"
    },
    {
      "id": "zh/04_原理/03.md",
      "title": "重要的类",
      "language": "zh-CN",
      "chapter": "zh/04_原理",
      "url": "https://tio-boot.com/zh/04_%E5%8E%9F%E7%90%86/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/04_%E5%8E%9F%E7%90%86/03.md",
      "source": "zh/04_原理/03.md",
      "description": "重要的类 nexus.io.tio.boot.context.Enviorment: 这个类是一个环境配置类，用于管理和配置应用程序的运行环境。它可能包含了设置如数据库连接、服务地址等环境相关的配置。 nexus.io.tio.boot.context.TioApplicationContext: 这个类是一个应用程序上下文类，它负责启动程序和初始化和...",
      "keywords": [],
      "status": "document",
      "sha256": "c2d591639ac1fd7d28617d3ff1c514b6fff74c2e660873fb8fa9b05bce02f710"
    },
    {
      "id": "zh/04_原理/readme.md",
      "title": "04_原理",
      "language": "zh-CN",
      "chapter": "zh/04_原理",
      "url": "https://tio-boot.com/zh/04_%E5%8E%9F%E7%90%86/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/04_%E5%8E%9F%E7%90%86/readme.md",
      "source": "zh/04_原理/readme.md",
      "description": "04_原理 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《生命周期》。 : 文档《请求处理流程》。 : 文档《重要的类》。",
      "keywords": [],
      "status": "document",
      "sha256": "c673e7783561e5c4f94325e4e65d7f17692a564f2ae1a48715ec58e97144e6ab"
    },
    {
      "id": "zh/05_json/01.md",
      "title": "Json",
      "language": "zh-CN",
      "chapter": "zh/05_json",
      "url": "https://tio-boot.com/zh/05_json/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/05_json/01.md",
      "source": "zh/05_json/01.md",
      "description": "Json 概述 Tio-Boot 的 JSON 模块以抽象类 Json 为核心，方便扩展第三方实现。Tio-Boot 官方提供了五种 Json 实现，分别是 TioJson、FastJson2、Jackson、Gson 和 MixedJson，这些实现均继承自抽象类 Json。 抽象类 Json 的核心方法如下： 如上所示，Json 抽象类定义了两个核...",
      "keywords": [],
      "status": "document",
      "sha256": "27cef8a09258dcc8d7d784ca93a45a857bc3909485eff7c15c693eff4bcfddbf"
    },
    {
      "id": "zh/05_json/02.md",
      "title": "接受 JSON 和响应 JSON",
      "language": "zh-CN",
      "chapter": "zh/05_json",
      "url": "https://tio-boot.com/zh/05_json/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/05_json/02.md",
      "source": "zh/05_json/02.md",
      "description": "接受 JSON 和响应 JSON 手动处理 Json 请求 接收 Json 数据 从 http 请求中获取 json 字符串 从 http 请求中获取 json 字符串,接收 JSON 数据有需要手动转为 JavaBean 示例代码 @RequestPath: @RequestPath(\"/test/json\"),用于声明这个类是一个请求控制器，并指定...",
      "keywords": [],
      "status": "document",
      "sha256": "ee4a9f536c3e24e915d0d514670e2055365a2b440257c762676d3967cafd3025"
    },
    {
      "id": "zh/05_json/03.md",
      "title": "响应实体类",
      "language": "zh-CN",
      "chapter": "zh/05_json",
      "url": "https://tio-boot.com/zh/05_json/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/05_json/03.md",
      "source": "zh/05_json/03.md",
      "description": "响应实体类 RespBodyVo RespBodyVo 是一个自定义的响应体封装类，用于统一 API 接口的响应格式。通过使用 RespBodyVo，可以确保所有 API 响应的一致性，便于前后端的协作和错误处理。RespBodyVo 提供了多种静态工厂方法和链式调用方式，简化了响应的构建过程。 类定义 属性说明 ok (boolean): 表示响应的...",
      "keywords": [],
      "status": "document",
      "sha256": "673162305ec9d1b3c566e55af42c968fdf0b0ea428e76ff1a18d041414f3c2bb"
    },
    {
      "id": "zh/05_json/readme.md",
      "title": "05_json",
      "language": "zh-CN",
      "chapter": "zh/05_json",
      "url": "https://tio-boot.com/zh/05_json/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/05_json/readme.md",
      "source": "zh/05_json/readme.md",
      "description": "05_json 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Json》。 : 文档《接受 JSON 和响应 JSON》。 : 文档《响应实体类》。",
      "keywords": [],
      "status": "document",
      "sha256": "5371181ce85f68baceab7f0857788add2b973bcf6a377d939bae638d55b9e9cf"
    },
    {
      "id": "zh/06_web/01.md",
      "title": "概述",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/01.md",
      "source": "zh/06_web/01.md",
      "description": "概述 TestControler 在 Web 开发中，常用的类包括 HttpRequest, HttpResponse, Reps 等。以下是一个使用了 tio-boot controller 的 Java 控制器示例： 这段代码演示了一些重要的注解的用法： @AController: 这个注解标识一个类作为控制器（Controller）。如果一个类已...",
      "keywords": [],
      "status": "document",
      "sha256": "5fec41aa7b0f8cdc30e0e79e60d368d00f9ad7fe4c2053597344e51b16d8dbfc"
    },
    {
      "id": "zh/06_web/02.md",
      "title": "接收请求参数",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/02.md",
      "source": "zh/06_web/02.md",
      "description": "接收请求参数 get 获取参数 这段代码定义了一个名为 get 的方法，通过 @RequestPath 注解映射到 URL 路径 /get。方法接收两个字符串参数 before 和 end，以及一个 HttpRequest 对象 request。 Post 获取参数 这段代码定义了一个名为 post 的方法，通过 @RequestPath 注解映射到 ...",
      "keywords": [],
      "status": "document",
      "sha256": "9dfe29702c55c988ebcbac82ee3b469f0fe2ab8cdd6a41bcce95c1e04e4e1d16"
    },
    {
      "id": "zh/06_web/03.md",
      "title": "接收日期参数",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/03.md",
      "source": "zh/06_web/03.md",
      "description": "接收日期参数 在 Tio-Boot 框架中，处理日期类型参数是开发中的常见场景。通过框架内置的类型转换功能，可以轻松地接收和处理前端传递的日期数据 Date 使用 Tio-Boot 框架处理 Date 类型参数 以下是一个简单的示例，演示如何在 Controller 中接收 Date 类型的参数。 示例代码 在上面的代码中，BaseController...",
      "keywords": [],
      "status": "document",
      "sha256": "b03107f01ecfad4631cac5c63dc0004da0798616b9a0b7526d61a0903779c798"
    },
    {
      "id": "zh/06_web/04.md",
      "title": "接收数组参数",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/04.md",
      "source": "zh/06_web/04.md",
      "description": "接收数组参数 在 Web 应用程序中，处理包含数组参数的 HTTP 请求是一项常见的需求。本文将介绍两种处理数组参数的方法： 使用框架自带的绑定功能（From） 使用自定义解析逻辑 1. 使用框架自带的绑定功能（From） 利用框架提供的注解和自动绑定功能，可以简化数组参数的接收和处理。以下是一个示例方法，展示如何通过 @RequestPath 注解接...",
      "keywords": [],
      "status": "document",
      "sha256": "faf10ba56ee07cf8d64cb9d2442cba726f273d49ad8ad2d2c4facb5ebebd28d6"
    },
    {
      "id": "zh/06_web/05.md",
      "title": "返回字符串",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/05.md",
      "source": "zh/06_web/05.md",
      "description": "返回字符串 这段代码定义了一个使用 tio-boot 框架的 HTTP 控制器，专门用于处理 /test/string 路径下的 Web 请求，并返回一个字符串。 @RequestPath(): 方法注解，指定了此方法处理的具体请求路径。结合类注解，当 HTTP 请求发送到 /test/string 时，此方法将被调用。 方法不接收任何参数，这意味着它...",
      "keywords": [],
      "status": "document",
      "sha256": "c9167cdb87137626b0ce33656a234d50df5114e48b0bada66419c476dd84e94b"
    },
    {
      "id": "zh/06_web/06.md",
      "title": "返回文本数据",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/06.md",
      "source": "zh/06_web/06.md",
      "description": "返回文本数据 这段代码定义了一个名为 txt 的方法，通过 @RequestPath 注解映射到 /txt URL 路径。该方法接收一个 HttpRequest 对象 request。 方法执行以下操作： 使用 Resps.txt 方法创建一个 HttpResponse 对象。这个方法预计会将一个变量 txt（其定义未在代码段中显示）的内容作为文本格式...",
      "keywords": [],
      "status": "document",
      "sha256": "a8bfe6107b1e3cff4b51aedef28fe7ca0e01928fb20b1976121a91f98f7b387e"
    },
    {
      "id": "zh/06_web/07.md",
      "title": "返回网页",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/07.md",
      "source": "zh/06_web/07.md",
      "description": "返回网页 概述 本文档介绍如何使用 tio-boot 框架创建 Controller 来直接返回网页内容。通过这种方式，可以将存储在数据库中的 HTML 内容直接渲染到浏览器中。 控制器实现 完整代码示例 代码解析 1. 注解说明 @RequestPath(\"/amazon_products\"): 类级别的注解，定义控制器的基础路径 @RequestP...",
      "keywords": [],
      "status": "document",
      "sha256": "9f6285b1bef04c6f46a6eff4e1ee1489c846f46d9c42bc35b58cbea9524e9295"
    },
    {
      "id": "zh/06_web/08.md",
      "title": "请求和响应字节",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/08.md",
      "source": "zh/06_web/08.md",
      "description": "请求和响应字节 获取请求字节 Method index: @RequestPath: 方法注解，没有提供具体的路径值，这意味着它将使用类级别的路径 /test/bytes。因此，当 HTTP 请求发送到 /test/bytes 时，此方法将被调用。 方法接收一个 HttpRequest 对象作为参数，代表接收到的 HTTP 请求。 byte[] bod...",
      "keywords": [],
      "status": "document",
      "sha256": "0a2f2098b945be17621e4d518913086d4f2b28021fdd7a74b1595314a452953c"
    },
    {
      "id": "zh/06_web/09.md",
      "title": "文件上传",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/09.md",
      "source": "zh/06_web/09.md",
      "description": "文件上传 接收文件 接受文件在 Controller 的方法中添加 UploadFile 类型的参数,在发送 http 请求时,请求的 key 是 UploadFile 类型的参数名.通常是 file,下面的案例是 uploadFile 这段代码定义了一个处理 HTTP 请求的方法 index。该方法通过 @RequestPath 注解映射到一个空的 ...",
      "keywords": [],
      "status": "document",
      "sha256": "76bf5f71b14a3a973d7078e9fb2991bb6212217efc1d12642bcd6f4c6082d1ae"
    },
    {
      "id": "zh/06_web/10.md",
      "title": "文件下载",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/10.md",
      "source": "zh/06_web/10.md",
      "description": "文件下载 本文详细介绍了如何在 tio-boot 后端应用程序中实现文件下载功能，涵盖任意文件下载、浏览器触发下载、以及 DOCX/PDF 文件下载等多种场景，同时还展示了如何生成二维码并通过浏览器下载二维码图片。内容包括完整的代码示例和详细的原理解析，适用于希望扩展或自定义文件下载功能的开发者。 1. 任意文件下载 在一些场景下，我们可能需要实现一个...",
      "keywords": [],
      "status": "document",
      "sha256": "4a16f279c0b31a9ef3f54e7184b1824608f52b13a1e29ba4741acb75a8367585"
    },
    {
      "id": "zh/06_web/11.md",
      "title": "返回视频文件并支持断点续传",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/11.md",
      "source": "zh/06_web/11.md",
      "description": "返回视频文件并支持断点续传 本文档介绍如何通过 TioBoot Handler 返回视频文件，支持 HTTP Range 断点续传，以便前端页面使用 <video> 标签直接播放视频。文档中同时说明了如何禁用视频文件的 gzip 压缩，以避免浏览器在解码时出现错误。 背景说明 对于视频文件（例如 MP4 格式），由于其本身已经经过压缩，如果服务器再次对...",
      "keywords": [],
      "status": "document",
      "sha256": "312bf4da71e0064736c6f0fafd84423f96fb32c1f83d2a9c7bef9f22945fee66"
    },
    {
      "id": "zh/06_web/12.md",
      "title": "http Session",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/12.md",
      "source": "zh/06_web/12.md",
      "description": "http Session 这段代码定义了一个名为 putsession 的方法，通过 @RequestPath 注解映射到 /putsession URL 路径。该方法接收两个参数：一个字符串 value 和一个 HttpRequest 对象 request。 方法的工作原理是： 通过 request.getHttpSession() 获取当前 HTT...",
      "keywords": [],
      "status": "document",
      "sha256": "c8de0c02ef8dfc7c4cae26e6b422c365abfadf7ab88e39939e6b6169c2193c92"
    },
    {
      "id": "zh/06_web/13.md",
      "title": "Cookie",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/13.md",
      "source": "zh/06_web/13.md",
      "description": "Cookie Cookie 构建方法 这段代码定义了一个使用 tio-boot 框架的 HTTP 控制器，用于处理 /test/cookie 路径下的 Web 请求，并涉及 HTTP Cookie 的读取和设置。以下是对代码的部分解释： Method index: Method setCookie: 当 HTTP 请求发送到 /test/cookie/...",
      "keywords": [],
      "status": "document",
      "sha256": "a016d74e17112f2562aeddc162c2a8ee1de899491bde308be9742c31c8b0f5a9"
    },
    {
      "id": "zh/06_web/14.md",
      "title": "重定向和转发",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/14.md",
      "source": "zh/06_web/14.md",
      "description": "重定向和转发 本文将详细介绍在 tio-boot 中如何实现请求的 重定向 与 转发，并提供详细的示例代码和说明。通过本文，将了解两者的区别、适用场景以及具体的实现方法。 一、重定向 (Redirect) 1.1 概念说明 重定向 是服务器告诉客户端（例如浏览器），“请求的资源已临时或永久移动到另一个 URL，请重新发起请求到该 URL”。重定向时，服...",
      "keywords": [],
      "status": "document",
      "sha256": "a7b319be7d3f87dfeaf9ae136e38b45b60fd30747738c7f8dffae253d5a7f97c"
    },
    {
      "id": "zh/06_web/15.md",
      "title": "HttpRequest",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/15.md",
      "source": "zh/06_web/15.md",
      "description": "HttpRequest 1. HttpRequest(Node remote) 说明: 构造一个 HttpRequest 对象，并设置远程节点。 用法: 2. HttpRequest() 说明: 创建一个无参的 HttpRequest 对象。 用法: 3. close() 说明: 关闭此 HttpRequest 的连接。 用法: 4. close(St...",
      "keywords": [],
      "status": "document",
      "sha256": "ef634e68b5e2f7b5e45d14992badefd5ca59978ffd51c494779ef722c2de7946"
    },
    {
      "id": "zh/06_web/16.md",
      "title": "HttpResponse",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/16.md",
      "source": "zh/06_web/16.md",
      "description": "HttpResponse HttpResponse 类扩展自 HttpPacket，用于表示 HTTP 响应。它包含了与 HTTP 响应相关的状态码、头部信息、Cookie 和主体内容。 构造方法 HttpResponse() 说明：默认构造函数，初始化一个空的 HTTP 响应对象。 HttpResponse(HttpRequest request) ...",
      "keywords": [],
      "status": "document",
      "sha256": "3561d1a43f72601e065d7cc7c5d0e8042c0abfdcb49105119a0a85f458a78ab3"
    },
    {
      "id": "zh/06_web/17.md",
      "title": "Resps",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/17.md",
      "source": "zh/06_web/17.md",
      "description": "Resps css(HttpRequest request, String bodyString)：创建一个带有给定正文字符串的 CSS 响应。设置 Content-Type 为 text/css;charset=utf-8。 css(HttpRequest request, String bodyString, String charset)：与上一...",
      "keywords": [],
      "status": "document",
      "sha256": "8f6c77f1fe20bf27f213978ebe21c16a5310d309502bce2b0de65ba1a0f1679d"
    },
    {
      "id": "zh/06_web/18.md",
      "title": "RespBodyVo",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/18.md",
      "source": "zh/06_web/18.md",
      "description": "RespBodyVo Introduction 响应可以使用 Map 自定义结构，推荐使用统一响应对象 RespBodyVo。当前 nexus.io 版本的类位于 nexus.io.model.body.RespBodyVo，由 java-model 提供，tio-boot 项目可使用。 RespBodyVo 是一个用于构造和管理响应对象的工具类，它提...",
      "keywords": [],
      "status": "document",
      "sha256": "e309f42fd8a11c163259d6a182531127bdb3c3aa290bcdfff7b771affab16ee4"
    },
    {
      "id": "zh/06_web/19.md",
      "title": "Controller拦截器",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/19.md",
      "source": "zh/06_web/19.md",
      "description": "Controller拦截器 概述 ControllerInterceptor 是 Tio-Boot 内置的拦截器，用于在控制器的 Action 方法执行前后进行统一处理。通过实现 ControllerInterceptor 接口，可以在请求进入业务方法前进行预处理，如权限校验、参数校验、日志记录等；在业务方法执行后对返回结果进行统一包装或后置处理。 接...",
      "keywords": [],
      "status": "document",
      "sha256": "61c6717b1436e24412d37daa3554ec421c4b7782c670e7a32e5871e0c438dab7"
    },
    {
      "id": "zh/06_web/20.md",
      "title": "请求拦截器",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/20.md",
      "source": "zh/06_web/20.md",
      "description": "请求拦截器 拦截器概述 在基于 Tio-Boot 的 HTTP 应用中，拦截器（Interceptor）是一种在请求到达业务处理器之前或响应返回客户端之后，对请求/响应进行预处理和后处理的机制。合理地使用拦截器，可用于集中化地处理以下场景： 请求校验：验证 HTTP 请求是否合法，拦截恶意或缺少关键信息的请求 鉴权与权限控制：检查请求的认证信息或用户权...",
      "keywords": [],
      "status": "document",
      "sha256": "f92cc54bb242d8e2dd1fc15472e82817108de49f6fa1da67ca8c768647a3b39c"
    },
    {
      "id": "zh/06_web/21.md",
      "title": "LoggingInterceptor",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/21.md",
      "source": "zh/06_web/21.md",
      "description": "LoggingInterceptor 概述 LoggingInterceptor是tio-boot内置的日志拦截器,之所以提供了这个接口,是为了提高性能. LoggingInterceptor 是一种自定义拦截器，专门用于在控制器方法执行前后记录日志到数据库。它耦合在 ControllerInterceptor 之后执行，可以： before 方法中：...",
      "keywords": [],
      "status": "document",
      "sha256": "a0e617a1f0e719a7e5bd01dc5e3d4587bbf42c9f7a82831f147d677af8689f73"
    },
    {
      "id": "zh/06_web/22.md",
      "title": "全局异常处理器",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/22.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/22.md",
      "source": "zh/06_web/22.md",
      "description": "全局异常处理器 Tio-Boot 提供了 TioBootExceptionHandler 接口，用于对全局异常进行统一处理。通过使用全局异常处理器，您可以在应用程序中捕获并处理所有未处理的异常，从而提高系统的健壮性和可维护性。 在 Tio-Boot 中使用全局异常处理器 以下是如何在 Tio-Boot 应用程序中使用全局异常处理器的详细步骤和说明。 1...",
      "keywords": [],
      "status": "document",
      "sha256": "b88ec3add0fdf586740b1a358c63082b72baacd7312e9228c1054cacb6b5d410"
    },
    {
      "id": "zh/06_web/23.md",
      "title": "异步处理",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/23.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/23.md",
      "source": "zh/06_web/23.md",
      "description": "异步处理 使用场景 大文件上传及上传后进行语音识别的应用场景 大文件上传: 企业员工上传完整的会议录音或录像文件 上传后进行语音识别: 对会议内容进行自动转写，生成会议纪要，便于后续查阅和分析讨论点 如果上传完成后不采用异步任务对文件进行语音识别，可能会出现以下问题： 响应延迟： 语音识别是一个计算密集型的操作，特别是当处理大文件时。如果在同一请求中直...",
      "keywords": [],
      "status": "document",
      "sha256": "a8ecf52397c335dfb98d52bbfa5b5c18a0a2022792a027d955c77ded4e9bd3a6"
    },
    {
      "id": "zh/06_web/24.md",
      "title": "动态 返回 CSS 实现",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/24.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/24.md",
      "source": "zh/06_web/24.md",
      "description": "动态 返回 CSS 实现 本文介绍如何通过识别浏览器的 User-Agent，判断设备是移动端还是桌面端，并返回对应的 CSS 样式。 解析 User-Agent 常见的 User-Agent 示例 Google Chrome: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (...",
      "keywords": [],
      "status": "document",
      "sha256": "55fbba45af49d1a9e3c0e9722d71bd5f3b57f2733ced1e9d0a4723c2e4dc8203"
    },
    {
      "id": "zh/06_web/25.md",
      "title": "返回图片",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/25.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/25.md",
      "source": "zh/06_web/25.md",
      "description": "返回图片 下面的文档将介绍在 tio-boot 框架中，如何在 Controller 中返回图片给浏览器，包括生成验证码图片、二维码图片以及与 Next.js 配合返回图片的完整示例。 1. 返回验证码图片 利用 Hutool 库生成并返回图形验证码。此示例通过 LineCaptcha 来生成带有干扰线的图形验证码，并以 JPEG 图片的形式返回给前端...",
      "keywords": [],
      "status": "document",
      "sha256": "1fbc104834d1811d9a78e24946be3eed5f262d0673cea446cc7e895485c0c0f7"
    },
    {
      "id": "zh/06_web/26.md",
      "title": "跨域",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/26.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/26.md",
      "source": "zh/06_web/26.md",
      "description": "跨域 @EnableCORS 注解支持 在 Tio-Boot 项目中，如果想让 Controller 的 Action 支持跨域请求 (CORS)，可以通过在类或方法上添加 @EnableCORS 注解。 类级别跨域支持: 在 Controller 类上添加 @EnableCORS 注解，这样类下的所有方法都会自动支持 CORS。 方法级别跨域支持: ...",
      "keywords": [],
      "status": "document",
      "sha256": "1cc864d1b01f584a3297bcf6e01737bb006e6f1b89207fc58bd0f45abd4fccbc"
    },
    {
      "id": "zh/06_web/27.md",
      "title": "添加 Controller",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/27.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/27.md",
      "source": "zh/06_web/27.md",
      "description": "添加 Controller 手动添加 Controller 在 tio-boot 框架中，启动类上使用 @AComponentScan 注解，Controller 类上使用 @RequestPath 注解。被 @AComponentScan 标记的启动类会自动扫描并初始化所有被 @RequestPath 标记的 Controller 类。 然而，在某些...",
      "keywords": [],
      "status": "document",
      "sha256": "2eaecf31f3a0c4650c45bc86aa22182d8fa5817d819a18df3485183ab8e02269"
    },
    {
      "id": "zh/06_web/28.md",
      "title": "Transfer-Encoding: chunked 实时音频播放",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/28.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/28.md",
      "source": "zh/06_web/28.md",
      "description": "Transfer-Encoding: chunked 实时音频播放 什么是 Transfer-Encoding: chunked 浏览器在大多数情况下是支持以 Transfer-Encoding 为 \"chunked\" 的方式传输的音频实时播放的。这种传输方式允许服务器将音频数据分块传输，而不是一次性发送整个音频文件。这样，浏览器可以在接收到部分音频数...",
      "keywords": [],
      "status": "document",
      "sha256": "3bdb2273be55afb4bff0caa7f44d32db8911b282953717a8dc425434afaa8ba8"
    },
    {
      "id": "zh/06_web/29.md",
      "title": "Server-Sent Events (SSE)",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/29.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/29.md",
      "source": "zh/06_web/29.md",
      "description": "Server-Sent Events (SSE) SSE 简介 Server-Sent Events（SSE）是一种允许服务器主动向客户端发送信息的技术。与 WebSocket 不同，SSE 是单向通信，仅服务器能向客户端发送数据。这使得 SSE 非常适合于需要服务器实时推送数据但客户端不需要发送信息的场景，例如实时通知和更新。 tio-boot 发送...",
      "keywords": [],
      "status": "document",
      "sha256": "e24019fa1a2c9325f8a25149f3d5cefa53ec7ec9b0e6b4097a6774b4058e7f28"
    },
    {
      "id": "zh/06_web/30.md",
      "title": "handler入门",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/30.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/30.md",
      "source": "zh/06_web/30.md",
      "description": "handler入门 1. tio-boot 简介及 Handler 的定位 tio-boot 是一个基于 t-io 的高性能 Java Web 框架，支持 HTTP 服务开发。 在 tio-boot 中，HTTP 请求分为 Controller 和 Handler 两种处理方式： Controller：支持自动请求参数封装、路由扫描，用法与传统 MVC...",
      "keywords": [],
      "status": "document",
      "sha256": "898121ee83f7b60f1a96e26d720b20ea0d03ccb897b03dd7fb270a4aceb409d2"
    },
    {
      "id": "zh/06_web/31.md",
      "title": "返回 multipart",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/31.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/31.md",
      "source": "zh/06_web/31.md",
      "description": "返回 multipart 1. 背景与问题 在一些“执行任务/生成内容”的接口里，返回值往往包含一个非常大的 JSON 字段（例如 json、output、std_out 等）。如果服务端统一把所有字段拼成一个超大的 JSON 字符串再返回，客户端通常要做两件事： 先把整个响应体一次性读完 再把整段 JSON 反序列化 当 JSON 特别大时，可能出现...",
      "keywords": [],
      "status": "document",
      "sha256": "ef35dbc4eafb11748b30100269bf8f1fc5e583b4046bf83e8e10a5d5877642bc"
    },
    {
      "id": "zh/06_web/32.md",
      "title": "Handler 的请求方法与错误响应",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/32.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/32.md",
      "source": "zh/06_web/32.md",
      "description": "Handler 的请求方法与错误响应 使用方法路由约束 HTTP 方法，Handler 负责读取参数并生成业务响应。响应体可以使用 Map，推荐使用 RespBodyVo 统一构造成功与失败响应。下面示例兼容 Java 8，业务数据仍可使用 Map，不执行数据库写入。 启动参数可使用 --server.port=8100 --server.contex...",
      "keywords": [],
      "status": "document",
      "sha256": "4b047ddc44e30314a6b59fc8caed0bff26d78701d5d85cc1694f072ec4552dbb"
    },
    {
      "id": "zh/06_web/33.md",
      "title": "自定义 Handler 转发请求",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/33.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/33.md",
      "source": "zh/06_web/33.md",
      "description": "自定义 Handler 转发请求 在一些情况下，我们可能需要查看客户端的请求转发到另个一个服端,包括请求头、请求体等。可以参考本文章实现 打印请求信息 拦截所有请求 配置一个 HttpRequestHandlerConfig 拦截所有请求 示例代码 输出信息示例 示例 1：JSON 格式的请求体 请求信息： 示例 2：表单格式的请求体 请求信息： 通过...",
      "keywords": [],
      "status": "document",
      "sha256": "93b432f86ed0dc893a2a75df15c3df982ca68f6861ec9eec76a0e9f67acd1d3b"
    },
    {
      "id": "zh/06_web/34.md",
      "title": "使用 HttpForwardHandler 转发所有请求",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/34.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/34.md",
      "source": "zh/06_web/34.md",
      "description": "使用 HttpForwardHandler 转发所有请求 ForwardHandler 简介 ForwardHandler 是 Tio-Boot 中用于请求转发的处理器，通常用于与第三方系统的集成。当请求在经过 Tio-Boot 的其他处理器（如 httpRequestInterceptor、httpRequestRouter、httpControll...",
      "keywords": [],
      "status": "document",
      "sha256": "883aab6360ba7884197b3735e9ccdad3518d6e0423b047ccb762865a98888232"
    },
    {
      "id": "zh/06_web/35.md",
      "title": "常用工具类",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/35.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/35.md",
      "source": "zh/06_web/35.md",
      "description": "常用工具类 HttpIpUtils String getRealIp(HttpRequest request) 获取请求的真实 IP 地址。此方法支持多种代理环境，确保即使在复杂的代理链中，也能准确提取客户端的实际 IP 地址。",
      "keywords": [],
      "status": "document",
      "sha256": "0052f05ffbfe23c0f5792995d372fa7dd797c0ff96cc2d7671f49cacaa66f548"
    },
    {
      "id": "zh/06_web/36.md",
      "title": "HTTP Basic 认证",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/36.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/36.md",
      "source": "zh/06_web/36.md",
      "description": "HTTP Basic 认证 HTTP Basic 认证是一种简单而有效的方法，用于限制对网络资源的访问。通过要求用户提供有效的用户名和密码，可以保护应用程序中的敏感端点。本文将探讨如何在 Tio-Boot 应用程序中集成 HTTP Basic 认证，以确保安全的访问控制。同时，我们还将重点介绍 Tio-Boot 处理 HTTP 请求头的一个重要特点：所...",
      "keywords": [],
      "status": "document",
      "sha256": "1c24586f160ad3117ed092accb3becb6960b46603ba133d2e5fe55ac2bd34d6b"
    },
    {
      "id": "zh/06_web/37.md",
      "title": "Http响应加密",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/37.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/37.md",
      "source": "zh/06_web/37.md",
      "description": "Http响应加密 一、背景与概述 在一些对数据安全要求较高的场景中，我们需要对服务端返回给客户端的 HTTP 响应体进行加密，以防止传输过程中的明文泄露。tio-boot 在底层已内置了对 HTTP 响应数据的加密支持： Controller 层：如果控制器直接返回对象或字符串，tio-boot 会自动调用配置的加解密器（TioEncryptor）对响...",
      "keywords": [],
      "status": "document",
      "sha256": "c1017c7ce0532f3c9b4a88a8d719fce18e0fbd9f462bd1e46d48832a46bb5acb"
    },
    {
      "id": "zh/06_web/38.md",
      "title": "使用零拷贝发送大文件",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/38.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/38.md",
      "source": "zh/06_web/38.md",
      "description": "使用零拷贝发送大文件 本文将结合示例代码，深入剖析零拷贝（Zero-Copy）技术的原理，演示如何在 Tio-boot HTTP 服务中利用零拷贝高效传输大文件，并补充性能优化和使用注意事项，帮助快速上手并理解底层机制。 一、背景与意义 传统的文件传输往往采用以下流程： 磁盘 → 内核缓冲区（DMA 读取） 内核缓冲区 → 用户缓冲区（read() 系...",
      "keywords": [],
      "status": "document",
      "sha256": "b711a14d23a2845df4b3ff53510e257635b572e1ef303e991f57d149517480be"
    },
    {
      "id": "zh/06_web/39.md",
      "title": "分片上传",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/39.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/39.md",
      "source": "zh/06_web/39.md",
      "description": "分片上传 1. 概述 本文档详细介绍了基于 Tio Boot 框架实现的文件分片上传服务。该服务旨在解决大文件上传过程中可能遇到的网络不稳定、超时等问题，通过将大文件分割成多个小块（分片）进行上传，提高上传的稳定性和效率。 1.1. 核心思想 分片上传 (Chunked Upload)：客户端将待上传的大文件按照预设大小（如 5MB）切分为多个小块。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "89f680f0b1d8a435df47dd7bc87c406e1a8086b86a81d2f3112a474469335e79"
    },
    {
      "id": "zh/06_web/40.md",
      "title": "接口访问统计",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/40.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/40.md",
      "source": "zh/06_web/40.md",
      "description": "接口访问统计 本文档详细介绍如何在 Tio-Boot 框架中实现接口访问统计功能。通过实现 RequestStatisticsHandler 接口，我们创建了 DbRequestStatisticsHandler 类，用于记录每个 HTTP 请求的关键信息，并通过异步任务将数据保存到数据库中，为后续问题排查和系统性能分析提供数据依据。 1. 需求概述 ...",
      "keywords": [],
      "status": "document",
      "sha256": "037bce07bc1b1ce8e3e4617366824be8c7b191a6895b50e0acd14b96e5afc498"
    },
    {
      "id": "zh/06_web/41.md",
      "title": "接口请求和响应数据记录",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/41.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/41.md",
      "source": "zh/06_web/41.md",
      "description": "接口请求和响应数据记录 本文档详细介绍了如何基于 Tio-Boot 框架实现接口请求和响应数据的记录功能，同时统计接口的耗时。我们将创建两个实现类： MyHttpResponseStatisticsHandler 用于记录接口响应数据，并统计接口耗时。 DbRequestResponseStatisticsHandler 用于记录请求和响应数据，且仅保...",
      "keywords": [],
      "status": "document",
      "sha256": "98cccc4395631eb93766fc3415c4036f53591e618829e14e41ba69398266d1f9"
    },
    {
      "id": "zh/06_web/42.md",
      "title": "WebJars",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/42.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/42.md",
      "source": "zh/06_web/42.md",
      "description": "WebJars 本文档介绍如何在 Tio-Boot 中配置 WebJars 资源访问及 Swagger UI 页面访问的实现方式。通过 Tio-Boot 内置的 WebjarHandler 类和自定义的 SwaggerUiHandler，我们可以实现对 WebJars 静态资源和 doc.html Swagger 页面文件的访问。 WebJars 规范...",
      "keywords": [],
      "status": "document",
      "sha256": "4a6c65398d2b41ff70b4332d5dcdc6185ea6a96fba327ed63a19ae0c0937dac9"
    },
    {
      "id": "zh/06_web/43.md",
      "title": "JProtobuf",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/43.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/43.md",
      "source": "zh/06_web/43.md",
      "description": "JProtobuf 一、简介 本文介绍另一种 JAVA 对象序列化神器——ProtoBuf（Protocol Buffers）。ProtoBuf 是由 Google 开发的一种用于序列化结构化数据的高效、灵活且语言中立的协议。它被广泛应用于数据通信、数据存储、RPC（远程过程调用）等场景，尤其适用于分布式系统和微服务架构中。ProtoBuf 序列化后的...",
      "keywords": [],
      "status": "document",
      "sha256": "8095fced31f197fa7fc35f5c232b0eb1c19bf9ce07307bbff82755afe653a84a"
    },
    {
      "id": "zh/06_web/44.md",
      "title": "测速",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/44.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/44.md",
      "source": "zh/06_web/44.md",
      "description": "测速 1、功能概述 SpeedTestHandler 是基于 Tio-Boot HTTP 框架的一个测速接口，能根据客户端传入的 size 参数（单位 MB）动态生成指定大小的二进制 payload 并返回，用于测试网络带宽及客户端接收性能。 2、Handler 实现示例 说明 disableGzip(true)：示例中调用关闭框架的 gzip 压缩逻...",
      "keywords": [],
      "status": "document",
      "sha256": "473d3baee1a8ce742d1f96e81c18d350c46fe12c05a31a5f2840824993f16fad"
    },
    {
      "id": "zh/06_web/45.md",
      "title": "Gzip Bomb：使用压缩炸弹防御恶意爬虫",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/45.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/45.md",
      "source": "zh/06_web/45.md",
      "description": "Gzip Bomb：使用压缩炸弹防御恶意爬虫 引言 在网络世界中，恶意爬虫可能导致服务器资源枯竭、数据被盗等问题。本文将介绍一种创新的防御策略——Gzip炸弹，它通过发送高度压缩的数据（解压后体积指数级增长），使恶意爬虫消耗大量资源直至崩溃。以下实现基于Java的tio-boot框架，并附有Python爬虫示例展示其效果。 Java服务端实现 核心逻辑...",
      "keywords": [],
      "status": "document",
      "sha256": "dd8c13cf84b1acc2b701c97cd0331a6d14734d2d662175e585389c7e75e8888d"
    },
    {
      "id": "zh/06_web/assets/readme.md",
      "title": "assets",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/assets/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/assets/readme.md",
      "source": "zh/06_web/assets/readme.md",
      "description": "assets 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 gzip_mermaid_20250706_84636f.svg: 矢量图资源，用于本目录文档配图或结构示意。",
      "keywords": [],
      "status": "document",
      "sha256": "045ee6c58dbdf7444df0d5821571147a43cf6cd31d917238462bf9ed042a175f"
    },
    {
      "id": "zh/06_web/readme.md",
      "title": "06_web",
      "language": "zh-CN",
      "chapter": "zh/06_web",
      "url": "https://tio-boot.com/zh/06_web/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/06_web/readme.md",
      "source": "zh/06_web/readme.md",
      "description": "06_web 本目录包含 47 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《概述》。 : 文档《接收请求参数》。 : 文档《接收日期参数》。 : 文档《接收数组参数》。 : 文档《返回字符串》。 : 文档《返回文本数据》。 : 文档《返回网页》。 : 文档《请求和响应字节》。...",
      "keywords": [],
      "status": "document",
      "sha256": "0a31c93412864b5cc3e80162e11cfe875ef33e1bfb44ef880036f701dd0be70d"
    },
    {
      "id": "zh/07_validate/01.md",
      "title": "数据紧校验规范",
      "language": "zh-CN",
      "chapter": "zh/07_validate",
      "url": "https://tio-boot.com/zh/07_validate/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/07_validate/01.md",
      "source": "zh/07_validate/01.md",
      "description": "数据紧校验规范 规范描述 本规范旨在为后端 API 的数据校验与错误处理提供统一的标准，确保前后端在交互过程中能够高效、准确地传递和处理错误信息。规范内容包括以下几个方面： 1. 统一响应结构 所有后端 API 接口的响应均采用统一的 JSON 格式，主要包含以下字段： data：用于存放响应的具体数据内容。 在请求成功时，data 包含所需的返回数据...",
      "keywords": [],
      "status": "document",
      "sha256": "9d34c6ad8ba2c6e59dafdaf2bbafe974786e76a605f5f67733b8f7e5ee3dae3c"
    },
    {
      "id": "zh/07_validate/02.md",
      "title": "参数校验",
      "language": "zh-CN",
      "chapter": "zh/07_validate",
      "url": "https://tio-boot.com/zh/07_validate/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/07_validate/02.md",
      "source": "zh/07_validate/02.md",
      "description": "参数校验 使用自定义方法进行参数校验 为了提升性能，建议在 Controller 或 Service 中使用自定义方法进行参数校验。以下是一个示例，展示了如何实现登录参数的校验逻辑。 在这个示例中，LoginValidator 类负责验证登录参数。具体步骤如下： 使用 StrKit.isBlank 方法检查用户名是否为空，如果为空则返回一个带有错误信息...",
      "keywords": [],
      "status": "document",
      "sha256": "37470d63a486100ca3bcfb974825d5c5fb8ff3e03cadb9e9bb051ee9a9274e6b"
    },
    {
      "id": "zh/07_validate/readme.md",
      "title": "07_validate",
      "language": "zh-CN",
      "chapter": "zh/07_validate",
      "url": "https://tio-boot.com/zh/07_validate/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/07_validate/readme.md",
      "source": "zh/07_validate/readme.md",
      "description": "07_validate 本目录包含 3 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《数据紧校验规范》。 : 文档《参数校验》。",
      "keywords": [],
      "status": "document",
      "sha256": "e209200e3a51ffc931a0751a2936e11a5c40492143cb0c7a8b20af766c0a000d"
    },
    {
      "id": "zh/08_websocket/01.md",
      "title": "使用 tio-boot 搭建 WebSocket 服务",
      "language": "zh-CN",
      "chapter": "zh/08_websocket",
      "url": "https://tio-boot.com/zh/08_websocket/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/08_websocket/01.md",
      "source": "zh/08_websocket/01.md",
      "description": "使用 tio-boot 搭建 WebSocket 服务 简介 随着实时网络应用的普及，如即时聊天、在线游戏和实时数据推送等，WebSocket 技术越来越受到开发者的青睐。它允许客户端和服务器之间进行全双工、低延迟的通信，从而实现更加流畅的用户体验。 本文将详细介绍如何使用 tio-boot 框架快速搭建一个功能完善的 WebSocket 服务器。我们...",
      "keywords": [],
      "status": "document",
      "sha256": "4e23b46fb71d5bfb0df1019457e51db640c90dbedb865f9f807b7462e3e2ecbc"
    },
    {
      "id": "zh/08_websocket/02.md",
      "title": "WebSocket 聊天室项目示例",
      "language": "zh-CN",
      "chapter": "zh/08_websocket",
      "url": "https://tio-boot.com/zh/08_websocket/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/08_websocket/02.md",
      "source": "zh/08_websocket/02.md",
      "description": "WebSocket 聊天室项目示例 简介 这个项目的主要目的是展示如何使用 tio-boot 框架构建一个简单的 WebSocket 聊天室应用。通过这个项目，开发者可以学习如何使用 tio-boot 创建一个支持实时通信的 WebSocket 服务器，并了解如何处理客户端连接、消息广播、群组管理等常见的聊天功能。此外，项目还展示了如何通过 tio-b...",
      "keywords": [],
      "status": "document",
      "sha256": "3fbfaf759465af9a11a10c89c7f12ba1ba61fd866c95ef544ebc7f038b5ffc1a"
    },
    {
      "id": "zh/08_websocket/readme.md",
      "title": "08_websocket",
      "language": "zh-CN",
      "chapter": "zh/08_websocket",
      "url": "https://tio-boot.com/zh/08_websocket/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/08_websocket/readme.md",
      "source": "zh/08_websocket/readme.md",
      "description": "08_websocket 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用 tio-boot 搭建 WebSocket 服务》。 : 文档《WebSocket 聊天室项目示例》。 demo01.png: 图片资源，用于本目录文档配图或界面示意。 demo02....",
      "keywords": [],
      "status": "document",
      "sha256": "dc9b7c887dffc069b74d369be5d7677389f40b3520e51c83f02673bfc5ca821f"
    },
    {
      "id": "zh/09_java-db/00.md",
      "title": "Db 工具类",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/00.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/00.md",
      "source": "zh/09_java-db/00.md",
      "description": "Db 工具类 使用 java-db 库时，单数据源业务直接调用静态 Db，复用 ActiveRecord 已初始化的默认配置，无需持有 DbPro 实例；JSONB 显式解析、命名数据源、事务边界和测试隔离见 。 基础使用 1. 常见用法 Db 类及其配套的 Row 类，提供了在 Model 类之外更为丰富的数据库操作功能。使用 Db 与 Row 类时...",
      "keywords": [],
      "status": "document",
      "sha256": "ddbb9a7e234e4249906e39859857f8780d7134ca465116c62988e32db67e043e"
    },
    {
      "id": "zh/09_java-db/01.md",
      "title": "java‑db",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/01.md",
      "source": "zh/09_java-db/01.md",
      "description": "java‑db 一个轻量级、零配置、支持多数据源、读写分离、SQL 模板管理、ActiveRecord ORM、批量操作、事务、统计等功能的 Java 数据库操作框架。 🚀 特性 ✅ 支持 MySQL、PostgreSQL、Oracle、SQLite 等多种数据库 ✅ 内置 Druid/HikariCP 连接池 ✅ ActiveRecord ORM ...",
      "keywords": [],
      "status": "document",
      "sha256": "2a612f3b901979aa4c0a6e3429ed24152f747e4d9b835a62126707cc6edb3a66"
    },
    {
      "id": "zh/09_java-db/02.md",
      "title": "操作数据库入门示例",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/02.md",
      "source": "zh/09_java-db/02.md",
      "description": "操作数据库入门示例 java-db 支持多种数据库,以 mysql 为例进行演示 mysql 添加测试数据 首先，我们创建一个表： 然后，我们随意插入几条记录： 连接 mysql 接下来，我们添加依赖项： 最后，我们编写测试代码： 这段代码使用 ActiveRecord 插件来连接 MySQL 数据库并执行查询。以下是每部分的详细解释： 导入所需的库：...",
      "keywords": [],
      "status": "document",
      "sha256": "d45fe137049f144c50c5154f8ea05d8cf2f4660f411aee5bba327b489bf3f8ae"
    },
    {
      "id": "zh/09_java-db/03_SQL Template.md",
      "title": "SQL 模板 (SqlTemplates)",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/03_SQL%20Template.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/03_SQL%20Template.md",
      "source": "zh/09_java-db/03_SQL Template.md",
      "description": "SQL 模板 (SqlTemplates) 1. 简介 SqlTemplates 是一个强大且灵活的SQL管理工具，旨在将SQL语句从Java代码中分离出来，实现更清晰的代码结构和更便捷的SQL维护。它通过解析特定格式的 .sql 文件，将SQL语句加载到内存中，并允许通过唯一的ID进行调用。 该工具支持两种灵活的加载模式： 主文件模式：通过一个入口文...",
      "keywords": [],
      "status": "document",
      "sha256": "e41ff694a36af014efc6afd953d2b3af3807b59a21ceeac46fd91b0b909c8bd9"
    },
    {
      "id": "zh/09_java-db/04_数据源配置与使用.md",
      "title": "数据源配置与使用",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/04_%E6%95%B0%E6%8D%AE%E6%BA%90%E9%85%8D%E7%BD%AE%E4%B8%8E%E4%BD%BF%E7%94%A8.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/04_%E6%95%B0%E6%8D%AE%E6%BA%90%E9%85%8D%E7%BD%AE%E4%B8%8E%E4%BD%BF%E7%94%A8.md",
      "source": "zh/09_java-db/04_数据源配置与使用.md",
      "description": "数据源配置与使用 HikariCP java-db 为了支持 HikariCP 内置了 HikariCpPlugin,下面讲解一下 如何使用 HikariCP 引入依赖 在项目的 pom.xml 文件中，需要引入以下依赖库： 这里 java-db 提供了 ActiveRecordPlugin 的支持，postgresql 是 PostgreSQL 数据...",
      "keywords": [],
      "status": "document",
      "sha256": "f061b5057e6624d3b968c3155185ef6180ed7cd731b340789381f2c1f0ebe921"
    },
    {
      "id": "zh/09_java-db/05_ActiveRecordPlugin.md",
      "title": "ActiveRecord",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/05_ActiveRecordPlugin.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/05_ActiveRecordPlugin.md",
      "source": "zh/09_java-db/05_ActiveRecordPlugin.md",
      "description": "ActiveRecord 概述 ActiveRecord 是 JFinal-Plugins 最核心的组成部分之一，通过 ActiveRecord 来操作数据库，将极大地减少代码量，极大地提升开发效率。 ActiveRecord 模式的核心是：一个 Model 对象唯一对应数据库表中的一条记录，而对应关系依靠的是数据库表的主键值。 因此，ActiveRe...",
      "keywords": [],
      "status": "document",
      "sha256": "1850c2ac2e554ad1c9c78e4f794fbc1eb7b1580aec7889a16b75e1ffaefb5a26"
    },
    {
      "id": "zh/09_java-db/06_db工具类基础.md",
      "title": "Db 工具类",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/06_db%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%9F%BA%E7%A1%80.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/06_db%E5%B7%A5%E5%85%B7%E7%B1%BB%E5%9F%BA%E7%A1%80.md",
      "source": "zh/09_java-db/06_db工具类基础.md",
      "description": "Db 工具类 使用 java-db 库时，单数据源业务直接调用静态 Db，复用 ActiveRecord 已初始化的默认配置，无需持有 DbPro 实例；JSONB 显式解析、命名数据源、事务边界和测试隔离见 。 基础使用 1. 常见用法 Db 类及其配套的 Row 类，提供了在 Model 类之外更为丰富的数据库操作功能。使用 Db 与 Row 类时...",
      "keywords": [],
      "status": "document",
      "sha256": "9a191c7dd3d7b81c9d1e9f9533e852d04e9e47fc02d7ce45aae7581183772821"
    },
    {
      "id": "zh/09_java-db/07_db工具类高级.md",
      "title": "批量操作",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/07_db%E5%B7%A5%E5%85%B7%E7%B1%BB%E9%AB%98%E7%BA%A7.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/07_db%E5%B7%A5%E5%85%B7%E7%B1%BB%E9%AB%98%E7%BA%A7.md",
      "source": "zh/09_java-db/07_db工具类高级.md",
      "description": "批量操作 批量操作方法 在实际开发中，批量操作能够显著提高数据库的处理效率，减少单条操作带来的性能开销。本文将以 Java-db 框架中的Db类为例，详细介绍批量操作的使用方法，包括批量保存和批量更新。 类名：Db.java 方法签名 参数说明 sql：指的是INSERT INTO或UPDATE语句。动态参数使用问号（?）作为占位符，例如： 上述 SQ...",
      "keywords": [],
      "status": "document",
      "sha256": "4c422210a9cfb618a3994baf7e9c2558811a0bdca9c9d5ae0e8ffc2feaa8076b"
    },
    {
      "id": "zh/09_java-db/08_Model.md",
      "title": "Model",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/08_Model.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/08_Model.md",
      "source": "zh/09_java-db/08_Model.md",
      "description": "Model 1、基本用法 Model 是 ActiveRecord 中最重要的组件之一，它充当 MVC 模式中的 Model 部分。以下是 Model 定义示例代码： 以上代码中的 User 通过继承 Model，便立即拥有的众多方便的操作数据库的方法。在 User 中声明的 dao 静态对象是为了方便查询操作而定义的，该对象并不是必须的。基于 Act...",
      "keywords": [],
      "status": "document",
      "sha256": "14e490956ab8e0169e318f4030153b4005ce723df3fe12b49adf78596b9a4725"
    },
    {
      "id": "zh/09_java-db/09_生成器与 JavaBean.md",
      "title": "Model生成器",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/09_%E7%94%9F%E6%88%90%E5%99%A8%E4%B8%8E%20JavaBean.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/09_%E7%94%9F%E6%88%90%E5%99%A8%E4%B8%8E%20JavaBean.md",
      "source": "zh/09_java-db/09_生成器与 JavaBean.md",
      "description": "Model生成器 本文档介绍了如何使用 ActiveRecord 模块下的 Generator 工具类，自动生成 JavaBean 相关的 Model、BaseModel、MappingKit、DataDictionary 四类文件。通过生成器，可以快速创建符合 JavaBean 规范的模型类，提升开发效率和代码质量。 1. 生成器使用 1.1 基本使...",
      "keywords": [],
      "status": "document",
      "sha256": "be8bf095949d2c70567d522eb5c69af42879ea0b051545b4b61098eda05131c4"
    },
    {
      "id": "zh/09_java-db/10.md",
      "title": "注解",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/10.md",
      "source": "zh/09_java-db/10.md",
      "description": "注解 本文档介绍了如何通过 Java 注解的方式操作数据库表 amazon_product_variant_example_table，实现数据的增删改查。我们将使用 JavaDb 框架中的 ActiveRecord 模块，并借助注解来简化数据库操作。 java-db 核心特性说明. 驼峰命名映射 Java 属性如hiResImageUrl自动映射到数...",
      "keywords": [],
      "status": "document",
      "sha256": "fd8fc8514ae620a4f30cf7fe6c8695b955cf3a80b5d72eea5e691169422e1d93"
    },
    {
      "id": "zh/09_java-db/11_异常处理.md",
      "title": "异常处理",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/11_%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/11_%E5%BC%82%E5%B8%B8%E5%A4%84%E7%90%86.md",
      "source": "zh/09_java-db/11_异常处理.md",
      "description": "异常处理 ActiveRecordException 1、背景简介 在使用 Java-DB（即 LitongJava ActiveRecord 框架）操作数据库时，当执行增删改查操作失败，框架会抛出 ActiveRecordException。出于安全考虑，该异常默认不会将完整的 SQL 语句及参数打印到控制台，而是将它们保存在异常对象内部，避免敏感信...",
      "keywords": [],
      "status": "document",
      "sha256": "81516d860b16f4418a66a54e4d1f7258d183ae6a5c7e7fe31a6b0a2bc7db053e"
    },
    {
      "id": "zh/09_java-db/12_数据库事务处理.md",
      "title": "数据库事务处理",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/12_%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BA%8B%E5%8A%A1%E5%A4%84%E7%90%86.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/12_%E6%95%B0%E6%8D%AE%E5%BA%93%E4%BA%8B%E5%8A%A1%E5%A4%84%E7%90%86.md",
      "source": "zh/09_java-db/12_数据库事务处理.md",
      "description": "数据库事务处理 在现代应用开发中，确保数据的完整性和一致性至关重要。数据库事务（Transaction）是实现这一目标的核心机制。它将一系列数据库操作捆绑成一个不可分割的逻辑工作单元，确保这些操作要么全部成功执行，要么在出现任何错误时全部回滚，使数据恢复到操作前的状态。 本文将详细介绍 ActiveRecord 框架中支持的三种主流事务处理方式，并提供...",
      "keywords": [],
      "status": "document",
      "sha256": "aee87d6eb3753b54e51695580ea5fcd8033ec747f24692165008074cbd05956e"
    },
    {
      "id": "zh/09_java-db/13_Cache 缓存.md",
      "title": "Cache 缓存",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/13_Cache%20%E7%BC%93%E5%AD%98.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/13_Cache%20%E7%BC%93%E5%AD%98.md",
      "source": "zh/09_java-db/13_Cache 缓存.md",
      "description": "Cache 缓存 1、使用 Ehcache 缓存 ActiveRecord 可以使用缓存以大大提高性能，默认的缓存实现是 ehcache，使用时需要引入 ehcache 的 jar 包及其配置文件，以下代码是 Cache 使用示例： 上例 findByCache 方法中的 cacheName 需要在 ehcache.xml 中配置如：<cache na...",
      "keywords": [],
      "status": "document",
      "sha256": "b50548337df72ec062dbe9268f597039020547ab4e5ceae8560dc7ac421ae0c4"
    },
    {
      "id": "zh/09_java-db/14_Dialect多数据库支持.md",
      "title": "Dialect 多数据库支持",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/14_Dialect%E5%A4%9A%E6%95%B0%E6%8D%AE%E5%BA%93%E6%94%AF%E6%8C%81.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/14_Dialect%E5%A4%9A%E6%95%B0%E6%8D%AE%E5%BA%93%E6%94%AF%E6%8C%81.md",
      "source": "zh/09_java-db/14_Dialect多数据库支持.md",
      "description": "Dialect 多数据库支持 目前 ActiveRecordPlugin 提供了 MysqlDialect、OracleDialect、PostgresqlDialect、SqlServerDialect、Sqlite3Dialect、AnsiSqlDialect 实现类。MysqlDialect 与 OracleDialect 分别实现对 Mysql...",
      "keywords": [],
      "status": "document",
      "sha256": "64d717d09603c7405e5fe4442412f49c4243d8830898847a91bffab4fa2c0975"
    },
    {
      "id": "zh/09_java-db/15_表关联操作.md",
      "title": "表关联操作",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/15_%E8%A1%A8%E5%85%B3%E8%81%94%E6%93%8D%E4%BD%9C.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/15_%E8%A1%A8%E5%85%B3%E8%81%94%E6%93%8D%E4%BD%9C.md",
      "source": "zh/09_java-db/15_表关联操作.md",
      "description": "表关联操作 ActiveRecord 天然支持表关联操作，并不需要学习新的东西，此为无招胜有招。表关联操作主要有两种方式：一是直接使用 sql 得到关联数据；二是在 Model 中添加获取关联数据的方法。 假定现有两张数据库表：user、blog，并且 user 到 blog 是一对多关系，blog 表中使用 user_id 关联到 user 表。如下...",
      "keywords": [],
      "status": "document",
      "sha256": "714b703e5ccd727a988ca364390474a71d495203fe8a197a307bb3916fc3e35d"
    },
    {
      "id": "zh/09_java-db/16_复合主键.md",
      "title": "复合主键",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/16_%E5%A4%8D%E5%90%88%E4%B8%BB%E9%94%AE.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/16_%E5%A4%8D%E5%90%88%E4%B8%BB%E9%94%AE.md",
      "source": "zh/09_java-db/16_复合主键.md",
      "description": "复合主键 ActiveRecord 采用极简设计支持复合主键，对于 Model 来说需要在映射时指定复合主键名称，以下是具体例子： 如上代码所示，对于 Model 来说，只需要在添加 Model 映射时指定复合主键名称即可开始使用复合主键，在后续的操作中 JFinal 会对复合主键支持的个数进行检测，当复合主键数量不正确时会报异常，尤其是复合主键数量不...",
      "keywords": [],
      "status": "document",
      "sha256": "97f2594a88162ff776cb5a126a3059d5ac63e6052f64c40c5696796ca44651be"
    },
    {
      "id": "zh/09_java-db/17_Oracle支持.md",
      "title": "Oracle 支持",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/17_Oracle%E6%94%AF%E6%8C%81.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/17_Oracle%E6%94%AF%E6%8C%81.md",
      "source": "zh/09_java-db/17_Oracle支持.md",
      "description": "Oracle 支持 Oracle 数据库具有一定的特殊性，JFinal 针对这些特殊性进行了一些额外的支持以方便广大的 Oracle 使用者。以下是一个完整的 Oracle 配置示例： 由于 Oracle 数据库会自动将属性名(字段名)转换成大写，所以需要手动指定主键名为大写，如：arp.addMaping(“user”, “ID”, User.cla...",
      "keywords": [],
      "status": "document",
      "sha256": "1b198e543cb4361b1af52818c77f7fb4e15fb3eeb943fafdc5030c75346ee02c"
    },
    {
      "id": "zh/09_java-db/18_Enjoy SQL 模板.md",
      "title": "Enjoy SQL 模板",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/18_Enjoy%20SQL%20%E6%A8%A1%E6%9D%BF.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/18_Enjoy%20SQL%20%E6%A8%A1%E6%9D%BF.md",
      "source": "zh/09_java-db/18_Enjoy SQL 模板.md",
      "description": "Enjoy SQL 模板 JFinal 利用自带的 Enjoy Template Engine 极为简洁的实现了 Sql 模板管理功能。一如既往的极简设计，仅有 #sql、#para、#namespace 三个指令，学习成本依然低到极致。 重要：除了以上三个 sql 管理专用指令以外，jfinal 模板引擎的所有指令和功能也可以用在 sql 管理，jf...",
      "keywords": [],
      "status": "document",
      "sha256": "9836b7d031583d500920196b0dcca1c88d86c7109f0ebd0e91f05c661a376854"
    },
    {
      "id": "zh/09_java-db/19_整合 Enjoy 模板最佳实践.md",
      "title": "整合 Enjoy 模板最佳实践",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/19_%E6%95%B4%E5%90%88%20Enjoy%20%E6%A8%A1%E6%9D%BF%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/19_%E6%95%B4%E5%90%88%20Enjoy%20%E6%A8%A1%E6%9D%BF%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5.md",
      "source": "zh/09_java-db/19_整合 Enjoy 模板最佳实践.md",
      "description": "整合 Enjoy 模板最佳实践 简介 在 Java 应用程序中整合 Enjoy 模板引擎，特别是在处理数据库操作和 SQL 文件管理方面，可以显著提高开发效率并增强代码的可维护性。本指南将详细介绍如何配置数据库连接、添加和管理 SQL 文件，以及通过模板引擎执行查询测试。 整合优势 统一管理 SQL 文件：使用 Enjoy 模板引擎，您可以将 SQL ...",
      "keywords": [],
      "status": "document",
      "sha256": "6b8c0ecc2b789d79a58cdbae688854b287afb6c4f9f6b0a3175b47471cfd307c"
    },
    {
      "id": "zh/09_java-db/20_多数据源支持.md",
      "title": "多数据源支持",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/20_%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E6%94%AF%E6%8C%81.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/20_%E5%A4%9A%E6%95%B0%E6%8D%AE%E6%BA%90%E6%94%AF%E6%8C%81.md",
      "source": "zh/09_java-db/20_多数据源支持.md",
      "description": "多数据源支持 ActiveRecordPlugin 可同时支持多数据源、多方言、多缓存、多事务级别等特性，对每个 ActiveRecordPlugin 可进行彼此独立的配置。简言之 JFinal 可以同时使用多数据源，并且可以针对这多个数据源配置独立的方言、缓存、事务级别等。 当使用多数据源时，只需要对每个 ActiveRecordPlugin 指定一...",
      "keywords": [],
      "status": "document",
      "sha256": "7300f0a0b0b8f67faafa68e8eedccdace1f5b38d50bf57bb0759a20fd9b7e55e"
    },
    {
      "id": "zh/09_java-db/21_独立使用 ActiveRecord.md",
      "title": "独立使用 ActiveRecord",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/21_%E7%8B%AC%E7%AB%8B%E4%BD%BF%E7%94%A8%20ActiveRecord.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/21_%E7%8B%AC%E7%AB%8B%E4%BD%BF%E7%94%A8%20ActiveRecord.md",
      "source": "zh/09_java-db/21_独立使用 ActiveRecord.md",
      "description": "独立使用 ActiveRecord ActiveRecordPlugin 可以独立于 java web 环境运行在任何普通的 java 程序中，使用方式极度简单，相对于 web 项目只需要手动调用一下其 start() 方法即可立即使用。以下是代码示例： 注意：ActiveRecordPlugin 所依赖的其它插件也必须手动调用一下 start()方法...",
      "keywords": [],
      "status": "document",
      "sha256": "a96613d9a59e7cf56591d28e6d48c8f26f15388412ad762e4cbe7a970acf2c5b"
    },
    {
      "id": "zh/09_java-db/22_调用存储过程.md",
      "title": "调用存储过程",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/22_%E8%B0%83%E7%94%A8%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/22_%E8%B0%83%E7%94%A8%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B.md",
      "source": "zh/09_java-db/22_调用存储过程.md",
      "description": "调用存储过程 使用工具类 Db 可以很方便调用存储过程，以下是代码示例： 如上所示，使用 Db.execute(...) 可以很方便去调用存储过程，其中的 connection 是一个 Connection 类型的对象，该对象在使用完以后，不必 close()，因为 jfinal 在上层会默认帮 close() 掉。 此外，MySQL 之下还可以使用更...",
      "keywords": [],
      "status": "document",
      "sha256": "a6869abef67064f43d534d6ae1d1b24acd6470dee9e2554f538b00b6a211e301"
    },
    {
      "id": "zh/09_java-db/23.md",
      "title": "java-db 整合 Guava 的 Striped 锁优化",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/23.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/23.md",
      "source": "zh/09_java-db/23.md",
      "description": "java-db 整合 Guava 的 Striped 锁优化 在现代高并发应用中，确保数据的一致性和线程安全性是至关重要的。本文将详细介绍如何使用 Guava 库提供的Striped锁机制来优化 Java 应用中的并发控制。通过一个具体的业务案例，展示Striped锁在实际应用中的优势和实现方法。 业务背景 假设我们有一个系统，用于处理教授的学生评论数...",
      "keywords": [],
      "status": "document",
      "sha256": "1273cb4caa608c71e983ae7e43b824733d190b77fb36bc5df3991a66578006b3"
    },
    {
      "id": "zh/09_java-db/24.md",
      "title": "生成 SQL",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/24.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/24.md",
      "source": "zh/09_java-db/24.md",
      "description": "生成 SQL 生成创表 SQL 定义实体类 生成创表 SQL output",
      "keywords": [],
      "status": "document",
      "sha256": "76ca6846f6a738031f9c5f0d60a58bc6a4eba9b7e336285c135da02b3d1a4aa9"
    },
    {
      "id": "zh/09_java-db/25.md",
      "title": "通过实体类操作数据库",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/25.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/25.md",
      "source": "zh/09_java-db/25.md",
      "description": "通过实体类操作数据库 保存 创建实体类 使用 Db 类保存数据",
      "keywords": [],
      "status": "document",
      "sha256": "c69fe4fc499b1c4fd6b084a9402eabcf2dfebf2b89c54718602982962bf52299"
    },
    {
      "id": "zh/09_java-db/26.md",
      "title": "java-db 读写分离",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/26.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/26.md",
      "source": "zh/09_java-db/26.md",
      "description": "java-db 读写分离 java-db 的 Db 工具类内置了读写分离功能。未处于默认数据源事务中时，自动读路由选择读数据源；默认数据源事务中，自动读路由固定使用主库的事务连接，以保证读取本事务写入的数据及行锁有效。写操作使用写数据源。 当调用 Db.find、Db.query、Db.paginate 等方法时，系统会自动执行读操作。 其他方法则用于...",
      "keywords": [],
      "status": "document",
      "sha256": "ac49a68db4cae49b4538a37ece9a9a87522ffeda514208b588f04027d3097599"
    },
    {
      "id": "zh/09_java-db/27.md",
      "title": "Spring Boot 整合 Java-DB",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/27.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/27.md",
      "source": "zh/09_java-db/27.md",
      "description": "Spring Boot 整合 Java-DB 整合 ActiveRecord 操作关系型数据库 Spring Boot 整合 Java-DB 有两种方式： 方式 1：不使用 Spring Boot，自行创建数据源并配置到 ActiveRecordPlugin 中 方式 2：使用 Spring Boot 的数据源，并将 ActiveRecordPlugi...",
      "keywords": [],
      "status": "document",
      "sha256": "70dc526f5ff2d0df23fedcb3096f0186ecf1b2488712b838c21e6f15d646e289"
    },
    {
      "id": "zh/09_java-db/28.md",
      "title": "like 查询",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/28.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/28.md",
      "source": "zh/09_java-db/28.md",
      "description": "like 查询 LIKE 查询是 SQL 中用于执行模糊匹配的重要操作符，常用于在 WHERE 子句中查找符合特定模式的记录。以下是关于如何进行 LIKE 查询的详细介绍，包括其基本用法、常见场景以及在 Java 中的实现示例。 1. 基本语法 column_name：要进行匹配的列。 pattern：用于匹配的模式，可以包含通配符。 2. 通配符 L...",
      "keywords": [],
      "status": "document",
      "sha256": "60abfd8c764f0b6b8108c422307e8503e79b58cb48487c3f0ebcccdadd31a667"
    },
    {
      "id": "zh/09_java-db/29.md",
      "title": "常用操作示例",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/29.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/29.md",
      "source": "zh/09_java-db/29.md",
      "description": "常用操作示例 查询 in 语句查询示例 in 查询 查询的表是 professor,查询的字段是 id 使用 java 的 stream 语法拼接 生成的 sql 语句和参数 从 row 中获取记录 使用 findIn 方法 updateById 根据 id 值更新 ENOTE_USER_DEVICES 表中的 mac_address 值 删除指定字段...",
      "keywords": [],
      "status": "document",
      "sha256": "f46672bf7ab5894e2aa965aaa20de998602ec12d838204227250dbd1f15d6854"
    },
    {
      "id": "zh/09_java-db/30.md",
      "title": "Druid 监控集成指南",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/30.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/30.md",
      "source": "zh/09_java-db/30.md",
      "description": "Druid 监控集成指南 一、前置依赖 在项目的构建文件（如 Maven 的 pom.xml）中添加 Druid 和数据库驱动依赖： Druid：提供高性能 JDBC 连接池、慢 SQL 日志、Web 监控等功能。 数据库驱动：根据实际使用的关系型数据库选择对应驱动。 二、配置 Druid 连接池与过滤器 在一个启动时被扫描的配置类（使用自定义 @AC...",
      "keywords": [],
      "status": "document",
      "sha256": "f073629994e2665edca867aa894bafc7c1a6d6a45c24ee608da603e72ffe6e83"
    },
    {
      "id": "zh/09_java-db/31.md",
      "title": "SQL 统计",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/31.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/31.md",
      "source": "zh/09_java-db/31.md",
      "description": "SQL 统计 简介 Java db 内置了 LiteSqlStatementStat 用于进行 SQL 统计 使用 使用 LiteSqlStatementStat 进行 SQL 统计 本文介绍了如何在 Java 应用中使用 LiteSqlStatementStat 进行 SQL 统计，并展示了相关配置、测试和输出结果。 1. 配置类 (DbConfig...",
      "keywords": [],
      "status": "document",
      "sha256": "df7fdd3ac88a930bf33642b2e2ff93d3a77fdd960d4750eba7faff096c45ecff"
    },
    {
      "id": "zh/09_java-db/32.md",
      "title": "Db 与 PostgreSQL 业务实践",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/32.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/32.md",
      "source": "zh/09_java-db/32.md",
      "description": "Db 与 PostgreSQL 业务实践 本章介绍 java-db 的静态 Db、JSONB 和事务用法，以及与 tio-boot-admin 的集成方式。使用 java-db 库时，单数据源业务直接使用 nexus.io.db.activerecord.Db，无需在 Store/Service 中持有或注入 DbPro。这是 java-db 的使用方...",
      "keywords": [],
      "status": "document",
      "sha256": "eccd3f80cac501d793678ee9ed74db7eb67b374bf0230450d84f1cd7aa72dcb0"
    },
    {
      "id": "zh/09_java-db/readme.md",
      "title": "09_java-db",
      "language": "zh-CN",
      "chapter": "zh/09_java-db",
      "url": "https://tio-boot.com/zh/09_java-db/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/09_java-db/readme.md",
      "source": "zh/09_java-db/readme.md",
      "description": "09_java-db 本目录包含 36 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Db 工具类》。 : 文档《java‑db》。 : 文档《操作数据库入门示例》。 : 文档《SQL 模板 (SqlTemplates)》。 : 文档《数据源配置与使用》。 : 文档《Activ...",
      "keywords": [],
      "status": "document",
      "sha256": "5833b91fe95c73d8c397e5262cb6d92dac12069a75d3c11e9eb53a2b52250c74"
    },
    {
      "id": "zh/10_api-table/01.md",
      "title": "ApiTable 概述",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/01.md",
      "source": "zh/10_api-table/01.md",
      "description": "ApiTable 概述 概述 ApiTable 是一款灵活的,高性能的,非 ORM 的 java 数据库操作框架 支持常用的 sql 数据, sqlite,mysql,oracle,postgresql,tdengine 根据参数参数自动生成 sql 语句 快速实现支持增删改查 入门使用 添加依赖",
      "keywords": [],
      "status": "document",
      "sha256": "444c05c903254fc547d2fcaec25b09958dad988e98aeaa2a8ea24977780342bb"
    },
    {
      "id": "zh/10_api-table/02.md",
      "title": "使用 ApiTable 连接 SQLite",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/02.md",
      "source": "zh/10_api-table/02.md",
      "description": "使用 ApiTable 连接 SQLite 入门示例 创建数据表并插入数据 SQLite 是一种轻量级嵌入式数据库。使用 Navicat Premium 可以轻松创建 SQLite 数据库，数据库文件将保存在本地。 以下是一个创建表并插入数据的示例： 整合 SQLite 在项目中整合 SQLite，首先需要添加以下依赖： 在 app.propertie...",
      "keywords": [],
      "status": "document",
      "sha256": "a3eff8c0f163a95af8a2f5f365aec2da2df8ba275bc2756e619942f8068ad26e"
    },
    {
      "id": "zh/10_api-table/03.md",
      "title": "使用 ApiTable 连接 Mysql",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/03.md",
      "source": "zh/10_api-table/03.md",
      "description": "使用 ApiTable 连接 Mysql 11.2.1.创建表,插入数据 创建一张简单的 student 表 11.2.2.添加依赖 11.2.3.配置文件-app.properties 11.2.7.编写启动类 11.2.5.编写配置类 DbConfig.java, 注意观察 DataSource 的 priority 是 1,priority 表示...",
      "keywords": [],
      "status": "document",
      "sha256": "830cd5d16eba597760a6ec0e65eaec616da3a2b46037352d98ed4a8507b2bcfc"
    },
    {
      "id": "zh/10_api-table/04.md",
      "title": "使用 ApiTable 连接 Postgres",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/04.md",
      "source": "zh/10_api-table/04.md",
      "description": "使用 ApiTable 连接 Postgres postgresql 简介 略 整合 简单整合示例 创建表,插入数据 创建一张简单的 student 表 添加依赖 新建工程 tio-boot-postgresql-demo 配置文件 app.properties 编写启动类 编写配置类 DbConfig.java, 注意观察 DataSource 的 ...",
      "keywords": [],
      "status": "document",
      "sha256": "9d7b3c6be2f41812e202ab54b81072b508f0175d95485aecce895dfb255eeb4a"
    },
    {
      "id": "zh/10_api-table/05.md",
      "title": "使用 ApiTable 连接 TDEngine",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/05.md",
      "source": "zh/10_api-table/05.md",
      "description": "使用 ApiTable 连接 TDEngine 本节列出了整合 TDEngine 所需的 Maven 依赖。这些依赖包括 tio-boot 用于构建基于事件驱动的应用程序，以及相关的 JDBC 驱动和连接池用于数据库连接。 连接 TDEngine 添加依赖 添加配置信息 app.properties 启动类 ActiveRecordPluginConf...",
      "keywords": [],
      "status": "document",
      "sha256": "4ee37863e09dc0520f82950f137450713ce7fc236c3a28592266ed3c0ec94d51"
    },
    {
      "id": "zh/10_api-table/06.md",
      "title": "使用 api-table 连接 oracle",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/06.md",
      "source": "zh/10_api-table/06.md",
      "description": "使用 api-table 连接 oracle",
      "keywords": [],
      "status": "placeholder",
      "sha256": "075f72c08a1338a1ef83fcf47e9eaf8e59ef70662d4b8d69fea1b74f0f2a4646"
    },
    {
      "id": "zh/10_api-table/07.md",
      "title": "使用 api-table 连接 mysql and tdengine 多数据源",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/07.md",
      "source": "zh/10_api-table/07.md",
      "description": "使用 api-table 连接 mysql and tdengine 多数据源 如何在 tio-boot 应用程序中配置多个数据源，这里以 MySQL 和 TDengine 为例。 ActiveRecordPluginConfiguration 类 数据源配置: getMysqlDataSource(): 此方法创建并配置 MySQL 的数据源。使用 ...",
      "keywords": [],
      "status": "document",
      "sha256": "492637888d90343ec219b71868dc0ae5c6e19497ac8f875f972fabf7509c3858"
    },
    {
      "id": "zh/10_api-table/08.md",
      "title": "EasyExcel 导出",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/08.md",
      "source": "zh/10_api-table/08.md",
      "description": "EasyExcel 导出 在本指南中，我们将演示如何使用 EasyExcelUtils 和 EasyExcelResponseUtils 来支持 Excel 导出功能。EasyExcelUtils 主要用于将数据导出到本地文件，而 EasyExcelResponseUtils 则用于将导出的 Excel 表格文件直接下载到客户端。 1. 使用 Easy...",
      "keywords": [],
      "status": "document",
      "sha256": "d65fb2708b34d968f0ce911ddee8fdb35ce6a0a93c6027c4f16abd03c2acf6e5"
    },
    {
      "id": "zh/10_api-table/09.md",
      "title": "EasyExcel 导入",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/09.md",
      "source": "zh/10_api-table/09.md",
      "description": "EasyExcel 导入 简介 背景 在数据处理和分析的过程中，读取和解析 Excel 文件是一个非常常见的需求。在 Java 开发中，有许多库可以帮助我们实现这一功能。其中，阿里巴巴的 EasyExcel 库因其高性能和易用性，备受开发者青睐。本文将详细介绍如何使用 EasyExcel 读取 Excel 文件，并将内容转换为自定义的数据结构 Tabl...",
      "keywords": [],
      "status": "document",
      "sha256": "f86790dec917f119333ce5b0276796f0748001bfe30260bb7ed07ed1b056c08b"
    },
    {
      "id": "zh/10_api-table/10.md",
      "title": "ApiTable 的权限与业务边界",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/10.md",
      "source": "zh/10_api-table/10.md",
      "description": "ApiTable 的权限与业务边界 表可以被 CRUD 不代表所有业务操作都适合直接通过通用更新实现。 不能让普通用户通过任意表名或筛选条件获得后台通用表能力。验证 Token 仅确认身份，不自动解决操作权限与租户隔离。 使用 tio-boot-admin 时，TioAdminControllerConfiguration 已注册 ApiTable，无...",
      "keywords": [],
      "status": "document",
      "sha256": "45a19ae5057efd4c488bb779c0a5c2367fe7b0c2e49cc4f1eccb8e6699359d96"
    },
    {
      "id": "zh/10_api-table/11.md",
      "title": "ApiTable 联调与故障定位",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/11.md",
      "source": "zh/10_api-table/11.md",
      "description": "ApiTable 联调与故障定位 先区分独立 ApiTable 与 tio-boot-admin 内置控制器，再对照同版本接口验证。 先做只读表配置和分页查询，再在独立测试表创建记录、保存主键、更新并重新查询，最后验证删除、恢复和导出。不要用生产业务表做随意写入测试。 复杂写入还需 。具体接口见 。",
      "keywords": [],
      "status": "document",
      "sha256": "cfdfb56315c96f78a6bbadd5145e94ed18765ab1fe36b1e373e5c656b6e023f0"
    },
    {
      "id": "zh/10_api-table/12.md",
      "title": "ApiTable 实现增删改查",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/12.md",
      "source": "zh/10_api-table/12.md",
      "description": "ApiTable 实现增删改查 本节介绍如何使用 tio-boot 整合 ApiTable，实现一个简单的增删改查（CRUD）示例应用。通过该示例，您将了解如何创建数据库表、配置依赖、编写控制器以及测试各项功能。 创建表和插入数据 创建表 首先，创建一个名为 system_users 的用户信息表，用于存储系统用户的相关信息。以下是建表的 SQL 语句...",
      "keywords": [],
      "status": "document",
      "sha256": "2769fed0e886924436282584b1135a27d282654c0fb565ab26fb8d1cbcd55ca4"
    },
    {
      "id": "zh/10_api-table/13.md",
      "title": "数组类型",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/13.md",
      "source": "zh/10_api-table/13.md",
      "description": "数组类型 本指南介绍了在前后端交互中如何处理数组类型的数据，包括数据的创建、后端接收与存储，以及数据查询的流程。 1. 创建数据时发送的格式 在创建新数据时，数组类型的字段需要按照特定的格式发送给后端。以下是一个示例，其中 permit_area 为数组类型字段： 说明： permit_area: 这是需要发送的数组字段，包含多个数值元素。 json_...",
      "keywords": [],
      "status": "document",
      "sha256": "f16458c73911da388f8134b93fa7b79f912e20f4a206d4b38601366f2c08e8ed"
    },
    {
      "id": "zh/10_api-table/14.md",
      "title": "单独使用 ApiTable",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/14.md",
      "source": "zh/10_api-table/14.md",
      "description": "单独使用 ApiTable 在现代应用开发中，简化数据库操作、提高代码复用性和维护性是每个开发者追求的目标。ApiTable 作为一个基于 java-db 框架的通用数据表操作工具，旨在实现这一目标。本文将详细介绍如何封装 ApiTableService 以及如何在控制器中使用 ApiTableService，以实现高效、灵活的增删改查（CRUD）操作...",
      "keywords": [],
      "status": "document",
      "sha256": "56351a5c889396635d8afad30fbf3dade91a7f5820ff3083c57efee13be37e45"
    },
    {
      "id": "zh/10_api-table/15.md",
      "title": "TQL（Table SQL）前端输入规范",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/15.md",
      "source": "zh/10_api-table/15.md",
      "description": "TQL（Table SQL）前端输入规范 TQL（Table SQL）是一种以 http 请求参数 为载体的结构化查询语言，用于操作数据表。 解析前端输入的 Http 请求 参数 转换为底层数据库可执行的 SQL 语句 执行 SQL 将执行结果返回至前端 支持对表的增删改查操作 基本概念 数据表（Data Table） 例如，以下请求中 system_...",
      "keywords": [],
      "status": "document",
      "sha256": "bb5586f71aa82615e6cd319a15c0613981e5a5317cbe3c0255ba40138697c22c"
    },
    {
      "id": "zh/10_api-table/readme.md",
      "title": "10_api-table",
      "language": "zh-CN",
      "chapter": "zh/10_api-table",
      "url": "https://tio-boot.com/zh/10_api-table/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/10_api-table/readme.md",
      "source": "zh/10_api-table/readme.md",
      "description": "10_api-table 本目录包含 16 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《ApiTable 概述》。 : 文档《使用 ApiTable 连接 SQLite》。 : 文档《使用 ApiTable 连接 Mysql》。 : 文档《使用 ApiTable 连接 Pos...",
      "keywords": [],
      "status": "document",
      "sha256": "61659c1de6d224109966b3a994030311c9f95bce33059327c5e4271fa389e924"
    },
    {
      "id": "zh/11_aop/01.md",
      "title": "JFinal-aop",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/01.md",
      "source": "zh/11_aop/01.md",
      "description": "JFinal-aop 添加依赖 jfinal-aop 源码:https://github.com/litongjava/jfinal-aop 概述 传统 AOP 实现需要引入大量繁杂而多余的概念，例如：Aspect、Advice、Joinpoint、Poincut、Introduction、Weaving、Around 等等，并且需要引入 IOC 容器...",
      "keywords": [],
      "status": "document",
      "sha256": "43b821c0a178d591d46d7961b6347145bbe07ec63f06149e6143ec5a234d8a7d"
    },
    {
      "id": "zh/11_aop/02.md",
      "title": "Aop 工具类",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/02.md",
      "source": "zh/11_aop/02.md",
      "description": "Aop 工具类 Introeuct JFinal Aop 提供了一个 Aop 工具类,可以方便的进行各种操作 使用 1、Aop get(...) Aop.get(...) 可以在任意时空创建对象并且对其进行依赖注入，例如： 以上代码会创建 Service 对象，如果 Service 中使用了 @AopBefore 配置过拦截器，那么会生效，如果 Ser...",
      "keywords": [],
      "status": "document",
      "sha256": "10ca5cbd20dd179204c6a7799d08a7576d3c8b284213f7ba738c7128600a1a7b"
    },
    {
      "id": "zh/11_aop/03.md",
      "title": "配置",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/03.md",
      "source": "zh/11_aop/03.md",
      "description": "配置 切换为 Cglib Proxy 动态代理是 jfinal AOP 的底层实现机制。proxy 模块需要运行在 JDK 环境之下，如果需要运行在 JRE 之下，可以添加如下配置来支持： 面的配置将切换到 cglib 对 proxy 模块的实现，需要在 pom.xml 中添加其 maven 依赖： 整合 Spring 整合 Dubbo 以下代码展示了...",
      "keywords": [],
      "status": "document",
      "sha256": "0eb572940dff883be39230bf2c0c8c653170d4d85300a5be658a9ed9f901ca3f"
    },
    {
      "id": "zh/11_aop/04.md",
      "title": "独立使用 JFinal Aop",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/04.md",
      "source": "zh/11_aop/04.md",
      "description": "独立使用 JFinal Aop 添加 jfinal-aop 依赖 jfinal-aop 可以独立使用, 可以在其他项目中使用 jfinal-aop 也可以在 Android 工程中使用 jfinal-aop 使用拦截器 如何在 Java 应用程序中使用 JFinal AOP （面向切面编程）库来实现拦截器功能。 这个演示主要涉及三个部分：目标类（Cat...",
      "keywords": [],
      "status": "document",
      "sha256": "9d6b83d80beba6cd415c239921ed589d85017ed70162b8ada0714e99700dc795"
    },
    {
      "id": "zh/11_aop/05.md",
      "title": "@AImport",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/05.md",
      "source": "zh/11_aop/05.md",
      "description": "@AImport @AImport 用于导入其它工程中的配置到本工程中 使用@AImport 注解整合 paddle-ocr-server paddle-ocr-server 是笔者开发的款 ocr 识别应用,开源地址,paddle-ocr-server 完全基于 tio-boot 开发,所以可以非常方便的整合到 tio-boot 应用中 编写 pom...",
      "keywords": [],
      "status": "document",
      "sha256": "24c93f69af8d24097e2a3dc6387cb61963508f882f17deb825ac325cb0a8394f"
    },
    {
      "id": "zh/11_aop/06.md",
      "title": "自定义注解拦截器",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/06.md",
      "source": "zh/11_aop/06.md",
      "description": "自定义注解拦截器 使用 InterceptorManager.me().registerInterceptor 实现自定义注解拦截器 在基于 JFinal AOP 的开发中，我们通常使用： 来为方法添加拦截器。 但这种方式有一个明显问题： 👉 业务语义不清晰 例如事务： 从代码上完全看不出： “这是一个事务方法” 这也是为什么 Spring、Micr...",
      "keywords": [],
      "status": "document",
      "sha256": "3a3c213705ba444d45dd8fa9f2e8fb303ee4e60caefc4c8de5000efaabf6d1be"
    },
    {
      "id": "zh/11_aop/07.md",
      "title": "原理解析",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/07.md",
      "source": "zh/11_aop/07.md",
      "description": "原理解析 1. 简介 本文介绍了 JFinal 框架中 AOP（面向切面编程）的实现原理和整体架构。 1.1. AOP 简介 AOP（Aspect-Oriented Programming，面向切面编程）是一种通过预编译方式和运行期间动态代理实现程序功能统一维护的技术。它允许将系统中的横切关注点（如日志、事务管理、权限控制等）与业务逻辑分离，增强代码的...",
      "keywords": [],
      "status": "document",
      "sha256": "fc796613aca0bdbfb43ec03a39a8874696d17c0a073a7d0a762861cb8fa209e8"
    },
    {
      "id": "zh/11_aop/images/readme.md",
      "title": "images",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/images/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/images/readme.md",
      "source": "zh/11_aop/images/readme.md",
      "description": "images 本目录包含 5 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 02.png: 图片资源，用于本目录文档配图或界面示意。 03.png: 图片资源，用于本目录文档配图或界面示意。 04.png: 图片资源，用于本目录文档配图或界面示意。 jfinal-aop.svg: 矢量图...",
      "keywords": [],
      "status": "document",
      "sha256": "e9d91001a627b4542cc2e9500102e6c7a86c549d6e8a790b38e8f467f55f0817"
    },
    {
      "id": "zh/11_aop/readme.md",
      "title": "11_aop",
      "language": "zh-CN",
      "chapter": "zh/11_aop",
      "url": "https://tio-boot.com/zh/11_aop/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/11_aop/readme.md",
      "source": "zh/11_aop/readme.md",
      "description": "11_aop 本目录包含 8 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《JFinal-aop》。 : 文档《Aop 工具类》。 : 文档《配置》。 : 文档《独立使用 JFinal Aop》。 : 文档《@AImport》。 : 文档《自定义注解拦截器》。 : 文档《原理解...",
      "keywords": [],
      "status": "document",
      "sha256": "13d6101259e4884edcf4ce9338c28612257509efb10acc63a8535390ba9e12f3"
    },
    {
      "id": "zh/12_cache/01.md",
      "title": "Caffeine",
      "language": "zh-CN",
      "chapter": "zh/12_cache",
      "url": "https://tio-boot.com/zh/12_cache/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/12_cache/01.md",
      "source": "zh/12_cache/01.md",
      "description": "Caffeine Caffeine 简介 Caffeine 是一个高性能的 Java 缓存库，提供了近乎最优的命中率。它是一个完全在内存中的缓存，可以用作本地缓存或与其他缓存解决方案结合使用。Caffeine 的主要特点包括： 快速的读写操作 基于大小、时间和引用的驱逐策略 统计和监听功能 易用的 API tio-boot 整合 Caffeine 添加...",
      "keywords": [],
      "status": "document",
      "sha256": "e12a8efef9f999ab106b44f868c3cc34951a154a2e7af9b4600a0f15834f7f43"
    },
    {
      "id": "zh/12_cache/06.md",
      "title": "CacheUtils 工具类",
      "language": "zh-CN",
      "chapter": "zh/12_cache",
      "url": "https://tio-boot.com/zh/12_cache/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/12_cache/06.md",
      "source": "zh/12_cache/06.md",
      "description": "CacheUtils 工具类 概述 tio-utils 内置了 CacheUtils 用户提供对缓存数据的支持,提供的工具类如下,tio-boot 已经内置了 tio-utils,所以不需要添加 tio-utils 的依赖.但是需要添加对于缓存库的依赖 nexus.io.tio.utils.cache.caffeine.CaffeineCache ne...",
      "keywords": [],
      "status": "document",
      "sha256": "2b354f22e41f2438ab21f9b0fec3b1e51d9399b4493add12a1528516451f0486"
    },
    {
      "id": "zh/12_cache/08.md",
      "title": "使用 java-db 整合 ehcache",
      "language": "zh-CN",
      "chapter": "zh/12_cache",
      "url": "https://tio-boot.com/zh/12_cache/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/12_cache/08.md",
      "source": "zh/12_cache/08.md",
      "description": "使用 java-db 整合 ehcache Ehcache 是一个广泛使用的开源的缓存黄金，它可以提高应用程序的性能和扩展性。 java-db 对 ehcache 进行了支持,使其的 java-db 中更易使用 整合 ehcache 添加依赖 需要用到 java-db 添加配置文件 ehcache.xml ehcache.xml 是 Ehcache 缓...",
      "keywords": [],
      "status": "document",
      "sha256": "ccf4babf637fa24622d2dfea49503b30e5e6fc3770e4e3b2b073bf765d7bc4c6"
    },
    {
      "id": "zh/12_cache/readme.md",
      "title": "12_cache",
      "language": "zh-CN",
      "chapter": "zh/12_cache",
      "url": "https://tio-boot.com/zh/12_cache/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/12_cache/readme.md",
      "source": "zh/12_cache/readme.md",
      "description": "12_cache 本章介绍本地缓存与统一缓存接口。Redis 客户端、序列化、分布式缓存与两级缓存集中在 。 阅读目录",
      "keywords": [],
      "status": "document",
      "sha256": "59582bea85483d516a0b6500720decbdc55b57862836090bcf9fbff84e4e2e43"
    },
    {
      "id": "zh/13_认证/01.md",
      "title": "FixedTokenInterceptor",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/01.md",
      "source": "zh/13_认证/01.md",
      "description": "FixedTokenInterceptor 概述 FixedTokenInterceptor 是 TioBoot 框架提供的一个内置 HTTP 请求拦截器，主要用于实现基于固定令牌的身份验证机制。该拦截器会检查 HTTP 请求头中的 authorization 字段，确保其值与预先配置的令牌一致，从而实现对 API 访问的安全控制。 应用场景 简单的 ...",
      "keywords": [],
      "status": "document",
      "sha256": "fdb1a70dbb1c3f43eb14f76d4437574d4d7289eb2c06176d511a14a47cc4811e"
    },
    {
      "id": "zh/13_认证/02.md",
      "title": "TokenManager",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/02.md",
      "source": "zh/13_认证/02.md",
      "description": "TokenManager Tio-boot内置了TokenManager用于简化token管理 在使用 Tio-boot 框架开发 Web 应用程序时，安全性始终是我们必须重点关注的部分。本文将详细介绍如何使用 Tio-boot 框架实现基于 JWT 的 Token 认证。我们将探讨如何配置拦截器、生成和验证 JWT Token，并管理用户的登录状态。...",
      "keywords": [],
      "status": "document",
      "sha256": "66f9f1d0f784fa7fb2075e3a8984173ab1a4a5f2b5f2c427935ae4ac19e7479a"
    },
    {
      "id": "zh/13_认证/03.md",
      "title": "数据表",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/03.md",
      "source": "zh/13_认证/03.md",
      "description": "数据表 1 用户表 Postgres sqlite 2 邮箱验证码表 用于存储邮件验证码信息，便于后续验证邮箱：",
      "keywords": [],
      "status": "document",
      "sha256": "77647529e9ed4f8679a41c209a72986d6953b937f379c8846a183c6a439f664e"
    },
    {
      "id": "zh/13_认证/04.md",
      "title": "匿名登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/04.md",
      "source": "zh/13_认证/04.md",
      "description": "匿名登录 本章介绍如何创建匿名用户，以及在前后端交互中如何利用匿名登录接口完成用户身份的验证和授权。文档中包含了登录流程、接口说明、代码实现及其背后的关键技术细节和设计思路。 1. 匿名登录流程 匿名登录流程主要包括以下两个步骤： 前端请求 前端向后端发起请求，通过调用匿名登录接口，获取匿名用户的相关信息。该接口会在服务端自动创建一个匿名用户，并返回该...",
      "keywords": [],
      "status": "document",
      "sha256": "309389432badccabc4dca208e2244fbcc10a20e0d83cae0d4a2d83d06105eeab"
    },
    {
      "id": "zh/13_认证/05.md",
      "title": "注册和登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/05.md",
      "source": "zh/13_认证/05.md",
      "description": "注册和登录 1.接口 1.1 注册（Regisater） 1.1.1 前端请求 当用户提交注册信息时，前端将用户名（邮箱）和密码发送给后端，后端负责处理注册逻辑并发送邮箱验证链接。 前端请求参数： email: 用户的邮箱地址。 password: 用户的密码。 前端请求示例： Origin 如果进行邮箱验证,是必填信息,通常浏览器会自动携带 user...",
      "keywords": [],
      "status": "document",
      "sha256": "373cc9db78600796f55a0843464f86657aa20668c0fa25bce7eda6203a6a6ca0"
    },
    {
      "id": "zh/13_认证/06.md",
      "title": "个人中心",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/06.md",
      "source": "zh/13_认证/06.md",
      "description": "个人中心 1. 功能概述 本文介绍如何使用 tio-boot 框架实现个人中心功能，包含以下核心接口： 用户信息查询：获取当前用户的详细信息 用户信息更新：修改用户基本信息 密码更新：安全修改用户密码 2. 接口规范 2.1 用户信息查询接口 请求 响应示例 2.2 用户信息更新接口 请求 响应示例 2.3 密码更新接口 请求 响应示例 3. 后端实现...",
      "keywords": [],
      "status": "document",
      "sha256": "058982987f7d0b83a847eb7f4779a5825e2632677cbb586639866056e9d5b122"
    },
    {
      "id": "zh/13_认证/07.md",
      "title": "重置密码",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/07.md",
      "source": "zh/13_认证/07.md",
      "description": "重置密码 本文档详细介绍了系统中重置密码功能的接口设计、流程说明及代码实现。该功能主要分为两个步骤： 获取验证码：用户输入邮箱后，系统向该邮箱发送验证码； 重置密码：用户将邮箱、验证码及新密码提交到后端，后端验证验证码有效后更新密码。 1. 重置密码流程 重置密码的流程主要分为以下两个步骤： 输入邮箱获取验证码 用户通过提交邮箱地址，调用接口获取验证码...",
      "keywords": [],
      "status": "document",
      "sha256": "198a6474b9aa5ad2c0f489dd937b2bea92d3d63e79a677dd3fda8cd7c133c639"
    },
    {
      "id": "zh/13_认证/08.md",
      "title": "Google 登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/08.md",
      "source": "zh/13_认证/08.md",
      "description": "Google 登录 本文档详细描述了如何实现 Google 登录功能，包括前置准备、整体登录流程、后端接口及代码示例。通过本文档，您可以了解如何配置 Google 开发者平台、前后端交互细节、授权码交换、用户信息处理以及生成内部认证 token 的具体步骤。 目录 前置工作 登录流程 1. 是否需要后端支持 2. 前后端 Google 登录流程 请求接...",
      "keywords": [],
      "status": "document",
      "sha256": "559675d01300ddecf21ab2434922a79065fa15e29aafb2a194781d12f2be7ba7"
    },
    {
      "id": "zh/13_认证/09.md",
      "title": "短信登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/09.md",
      "source": "zh/13_认证/09.md",
      "description": "短信登录 概述 本指南旨在详细介绍如何实现基于短信验证码的用户登录和注册功能。通过使用腾讯云短信服务，系统能够在用户成功登录后自动创建新用户。本文涵盖了从短信模板配置、数据库设计、短信发送工具类开发，到接口实现和验证逻辑的全流程，适用于 Java 开发环境。 配置短信模板 在开始实现短信登录功能之前，首先需要在腾讯云完成短信模板的配置。具体的配置过程请...",
      "keywords": [],
      "status": "document",
      "sha256": "940f357de268595fa0278284c4a29f6a4679ddfd144a6e87dc0cfb40eca7bdaa"
    },
    {
      "id": "zh/13_认证/10.md",
      "title": "移动端微信登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/10.md",
      "source": "zh/13_认证/10.md",
      "description": "移动端微信登录 登录流程概述 在移动端应用中，通过微信授权登录的流程如下： 调起微信授权：APP 调起微信客户端进行授权，用户同意后获取授权码 (code)。 传递 code 给后台：APP 将获取到的 code 通过接口传递给后台服务器。 服务器交换 code 获取 access_token 和 openid：后台服务器使用 appid、secret...",
      "keywords": [],
      "status": "document",
      "sha256": "db0c31d573dee87dac22914d84b5e24088dde5e7e2fd7bbeacddd26f4fdd0d22"
    },
    {
      "id": "zh/13_认证/11.md",
      "title": "移动端重置密码",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/11.md",
      "source": "zh/13_认证/11.md",
      "description": "移动端重置密码 目录 重置密码流程概述 API 接口详解 /sms/send 发送短信验证码 /user/bindPhone 绑定手机号 /user/resetPassword 重置密码 实现细节 接口层实现 业务层实现 接口文档 绑定手机号接口 重置密码接口 注意事项与最佳实践 参考文档 重置密码流程概述 在用户需要重置密码之前，系统要求用户先绑定手...",
      "keywords": [],
      "status": "document",
      "sha256": "c81164c77735739bcfc58e27a15a693396515af650ce806ec8b564f0acb3ca8e"
    },
    {
      "id": "zh/13_认证/12.md",
      "title": "微信登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/12.md",
      "source": "zh/13_认证/12.md",
      "description": "微信登录",
      "keywords": [],
      "status": "placeholder",
      "sha256": "b9db9691af3fe5111cf6f572c9065b1dfa8f495c595f108393736a54f20d43a7"
    },
    {
      "id": "zh/13_认证/13.md",
      "title": "移动端微信登录",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/13.md",
      "source": "zh/13_认证/13.md",
      "description": "移动端微信登录",
      "keywords": [],
      "status": "placeholder",
      "sha256": "13cf90130be7f6d2dfa1a14ce83a1f8a18daf9e8fcf973174f83aa2aec1b8123"
    },
    {
      "id": "zh/13_认证/14.md",
      "title": "权限校验注解",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/14.md",
      "source": "zh/13_认证/14.md",
      "description": "权限校验注解 在开发 Web 应用程序时，权限控制是必不可少的功能。本文将介绍如何在 TioBoot 框架中使用内置的注解 @GatewayCheck、@RequiresAuthentication 和 @RequiresPermissions 实现权限校验，并演示如何自定义权限校验的切面逻辑。 前言 TioBoot 提供了便捷的权限校验注解，方便开发...",
      "keywords": [],
      "status": "document",
      "sha256": "8f05cf52e6907d5d50e8ab024402994f4115df6a8dda1609a06dbdbf271e9282"
    },
    {
      "id": "zh/13_认证/15.md",
      "title": "Sa-Token",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/15.md",
      "source": "zh/13_认证/15.md",
      "description": "Sa-Token 概述 Tio-Boot 已经内置对 Sa-Token 的支持，为处理身份验证和授权提供了一种高效的方式。虽然 Tio-Boot 自带此支持，但仍需手动添加 sa-token-core 依赖。此外，如果希望将 Token 存储在 Redis 中，还需要添加 java-db、jedis 和 fst 依赖。 使用 Sa-Token 实现登录...",
      "keywords": [],
      "status": "document",
      "sha256": "1a2fdcd81d8b4595f76525424e8fd707a63c58191e49779cb6312651acb764de"
    },
    {
      "id": "zh/13_认证/16.md",
      "title": "sa-token 登录注册",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/16.md",
      "source": "zh/13_认证/16.md",
      "description": "sa-token 登录注册 在本章节中，我们将使用 tio-boot 和 Sa-Token 开发一个用户注册和登录系统。该系统将： 从 MySQL 数据库读取和存储用户信息。 生成用于认证的 JWT 令牌。 将会话数据存储在 Redis 中。 本示例将引导您完成以下步骤： 创建必要的数据库表。 添加项目所需的依赖。 配置应用程序属性。 设置应用程序、数...",
      "keywords": [],
      "status": "document",
      "sha256": "f11a269bf29bd9bee1746321f0f294585eb3d2a282f4b60381f71131580cb241"
    },
    {
      "id": "zh/13_认证/17.md",
      "title": "StpUtil.isLogin() 源码解析",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/17.md",
      "source": "zh/13_认证/17.md",
      "description": "StpUtil.isLogin() 源码解析 在现代 Web 应用中，用户身份验证与会话管理是确保系统安全性和用户体验的重要组成部分。本文将深入解析 StpUtil.isLogin() 方法的源码，帮助开发者更好地理解其工作原理及实现细节。 方法概述 StpUtil.isLogin() 方法用于判断当前会话是否已经登录。该方法返回一个布尔值：如果已登录...",
      "keywords": [],
      "status": "document",
      "sha256": "d4625ebf9e33565d72d900dc66114e397f4f44430569f26debcaad46bd636854"
    },
    {
      "id": "zh/13_认证/readme.md",
      "title": "13_认证",
      "language": "zh-CN",
      "chapter": "zh/13_认证",
      "url": "https://tio-boot.com/zh/13_%E8%AE%A4%E8%AF%81/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/13_%E8%AE%A4%E8%AF%81/readme.md",
      "source": "zh/13_认证/readme.md",
      "description": "13_认证 本目录包含 22 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《FixedTokenInterceptor》。 : 文档《TokenManager》。 : 文档《数据表》。 : 文档《匿名登录》。 : 文档《注册和登录》。 : 文档《个人中心》。 : 文档《重置密码...",
      "keywords": [],
      "status": "document",
      "sha256": "926a30198d09eca825eefe88a201123fc3664095c9003614b75abacf4c906ca5"
    },
    {
      "id": "zh/14_i18n/01.md",
      "title": "i18n",
      "language": "zh-CN",
      "chapter": "zh/14_i18n",
      "url": "https://tio-boot.com/zh/14_i18n/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/14_i18n/01.md",
      "source": "zh/14_i18n/01.md",
      "description": "i18n 概述 tio-boot 为国际化提供了极速化的支持，国际化模块仅三个类文件，使用方式要比 spring 这类框架容易得多。 I18n 与 Res I18n 对象可通过资源文件的 baseName 与 locale 参数获取到与之相对应的 Res 对象，Res 对象提供了 API 用来获取国际化数据。 以下给出具体使用步骤： 创建 i18n_e...",
      "keywords": [],
      "status": "document",
      "sha256": "3fe22cc1455a390678891d969e388d661e4aff0b37f394166fabd70a93495035"
    },
    {
      "id": "zh/14_i18n/readme.md",
      "title": "14_i18n",
      "language": "zh-CN",
      "chapter": "zh/14_i18n",
      "url": "https://tio-boot.com/zh/14_i18n/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/14_i18n/readme.md",
      "source": "zh/14_i18n/readme.md",
      "description": "14_i18n 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《i18n》。",
      "keywords": [],
      "status": "document",
      "sha256": "7dd4bebb2127ece9e7959d7c82c2765c22e1738584ab2a75e3e0fe412683b5e4"
    },
    {
      "id": "zh/15_enjoy/01.md",
      "title": "tio-boot 整合 Enjoy 模版引擎文档",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/01.md",
      "source": "zh/15_enjoy/01.md",
      "description": "tio-boot 整合 Enjoy 模版引擎文档 本文档详细介绍了如何在 tio-boot 框架中集成 Enjoy 模版引擎，包括引擎简介、基础使用示例、依赖添加、配置说明以及在 Controller 中的使用方法。内容深入浅出，非常适合初学者学习。 简介 Enjoy Template Engine 是一款为 Java 开发者打造的高效模版引擎。其采用...",
      "keywords": [],
      "status": "document",
      "sha256": "f77a9698b84dddc8ae06a89c9aea45fb56980a387f886ee7512a66e194372242"
    },
    {
      "id": "zh/15_enjoy/02.md",
      "title": "Tio-Boot 整合 Java-DB 与 Enjoy 模板引擎示例",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/02.md",
      "source": "zh/15_enjoy/02.md",
      "description": "Tio-Boot 整合 Java-DB 与 Enjoy 模板引擎示例 本教程将详细介绍如何使用 Tio-Boot 框架，结合 Java-DB（ActiveRecord） 和 Enjoy 模板引擎，快速构建一个现代化的 Web 应用——“Study11 学习平台”。我们将从数据库设计、后端服务、模板渲染到前端展示，完整演示数据驱动页面的实现过程。 🎯 ...",
      "keywords": [],
      "status": "document",
      "sha256": "439231efcf9ba198905b2c39e38bfe715f47fa12c56849b5f9d2526e1981e6bb"
    },
    {
      "id": "zh/15_enjoy/03_引擎配置.md",
      "title": "引擎配置",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/03_%E5%BC%95%E6%93%8E%E9%85%8D%E7%BD%AE.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/03_%E5%BC%95%E6%93%8E%E9%85%8D%E7%BD%AE.md",
      "source": "zh/15_enjoy/03_引擎配置.md",
      "description": "引擎配置 1､配置入口 Enjoy 引擎的配置入口统一在 Engine 类中。Engine 类中提供了一系列 setter 方法帮助引导配置，减少记忆负担，例如： 注意：engine.setToClassPathSourceFactory()、engine.setBaseTemplatePath(...)、engine.setDevMode(...) ...",
      "keywords": [],
      "status": "document",
      "sha256": "a13ed6c5f07bd96660a370699520c1dd93856f90afdd1d99d03083ab6e0e48ff"
    },
    {
      "id": "zh/15_enjoy/04_表达式.md",
      "title": "表达式",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/04_%E8%A1%A8%E8%BE%BE%E5%BC%8F.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/04_%E8%A1%A8%E8%BE%BE%E5%BC%8F.md",
      "source": "zh/15_enjoy/04_表达式.md",
      "description": "表达式 Enjoy Template Engine 表达式规则设计在总体上符合 java 表达式规则，仅仅针对模板引擎的特征进行极其少量的符合直觉的有利于开发体验的扩展。 对于表达式的使用，再次强调一个关键点：表达式与 Java 是直接打通的。掌握了这个关键点立即就掌握了模板引擎 90%的用法。如下是代码示例： 以上代码第一、第二行，与 Java 表达...",
      "keywords": [],
      "status": "document",
      "sha256": "36cfc13fc80bc2b8abb8f9be0f57f76c2549ddfd4a34706026353ab0d61bb94d"
    },
    {
      "id": "zh/15_enjoy/05_指令.md",
      "title": "指令",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/05_%E6%8C%87%E4%BB%A4.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/05_%E6%8C%87%E4%BB%A4.md",
      "source": "zh/15_enjoy/05_指令.md",
      "description": "指令 Enjoy Template Engine 一如既往地坚持极简设计，核心只有 #if、#for、#switch、#set、#include、#define、#(…) 这七个指令，便实现了传统模板引擎几乎所有的功能，用户如果有任意一门程序语言基础，学习成本几乎为零。 如果官方提供的指令无法满足需求，还可以极其简单地在模板语言的层面对指令进行扩展，在...",
      "keywords": [],
      "status": "document",
      "sha256": "5087ee8739945caa61587708f6643fab66b40246d476c34579cf643375b56ae5"
    },
    {
      "id": "zh/15_enjoy/06_注释.md",
      "title": "注释",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/06_%E6%B3%A8%E9%87%8A.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/06_%E6%B3%A8%E9%87%8A.md",
      "source": "zh/15_enjoy/06_注释.md",
      "description": "注释 JFinal Template Engine 支持单行与多行注释，以下是代码示例： 如上所示，单行注释使用三个#字符，多行注释以#--打头，以--#结尾。 与传统模板引擎不同，这里的单行注释采用三个字符，主要是为了减少与文本内容相冲突的可能性，模板是极其自由化的内容，使用三个字符，冲突的概率降低一个数量级。 jfinal 4.4 之前的版本注意：...",
      "keywords": [],
      "status": "document",
      "sha256": "c8c086da40d8227e33ab2b4bc6ea716dbdcd67a95854c344ef8c30d39d7e0144"
    },
    {
      "id": "zh/15_enjoy/07_原样输出.md",
      "title": "原样输出",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/07_%E5%8E%9F%E6%A0%B7%E8%BE%93%E5%87%BA.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/07_%E5%8E%9F%E6%A0%B7%E8%BE%93%E5%87%BA.md",
      "source": "zh/15_enjoy/07_原样输出.md",
      "description": "原样输出 原样输出是指不被解析，而仅仅当成纯文本的内容区块，如下所示： 如上所示，原样输出以 #[[三个字符打头，以]]# 三个字符结尾，中间被包裹的内容虽然是指令，但仍然被当成是纯文本，这非常有利于解决与前端 javascript 模板引擎的指令冲突问题。 无论是单行注释、多行注释，还是原样输出，都是以三个字符开头，目的都是为了降低与纯文本内容冲突的...",
      "keywords": [],
      "status": "document",
      "sha256": "91a657e2f9ea15d90fded273a52fd52b948f1528730993f3ecf7f71355b025db"
    },
    {
      "id": "zh/15_enjoy/08_Shared Method 扩展.md",
      "title": "Shared Method 扩展",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/08_Shared%20Method%20%E6%89%A9%E5%B1%95.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/08_Shared%20Method%20%E6%89%A9%E5%B1%95.md",
      "source": "zh/15_enjoy/08_Shared Method 扩展.md",
      "description": "Shared Method 扩展 1､基本用法 Enjoy 模板引擎可以极其简单的直接使用任意的 java 类中的 public 方法，并且被使用的 java 类无需实现任何接口也无需继承任何抽象类，完全无耦合。以下代码以 JFinal 之中的 com.jfinal.kit.StrKit 类为例： 以上代码已将 StrKit 类中所有的 public ...",
      "keywords": [],
      "status": "document",
      "sha256": "f9e2aa821eac70ec072ee8e009e7160244aea9d3ea1b4b4f0ed0a20071d47ed3"
    },
    {
      "id": "zh/15_enjoy/09_Shared Object扩展.md",
      "title": "Shared Object 扩展",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/09_Shared%20Object%E6%89%A9%E5%B1%95.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/09_Shared%20Object%E6%89%A9%E5%B1%95.md",
      "source": "zh/15_enjoy/09_Shared Object扩展.md",
      "description": "Shared Object 扩展 通过使用 addSharedObject 方法，将某个具体对象添加为共享对象，可以全局进行使用，以下是代码示例： 以上代码中的第二行，添加了一个名为 RESOURCE_HOST 的共享对象，而第三行代码添加了一个名为 StrKit 的共享对象，以下是在模板中的使用例子： 以上代码第一行中使用输出指令输出了 RESOUC...",
      "keywords": [],
      "status": "document",
      "sha256": "c4b22f312da97f02d6fcc58b4d083140b1ca5652c09fd1d9f8dd49f8a47e2d82"
    },
    {
      "id": "zh/15_enjoy/10_Extension Method扩展.md",
      "title": "Extension Method 扩展",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/10_Extension%20Method%E6%89%A9%E5%B1%95.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/10_Extension%20Method%E6%89%A9%E5%B1%95.md",
      "source": "zh/15_enjoy/10_Extension Method扩展.md",
      "description": "Extension Method 扩展 Extension Method 用于对已存在的类在其外部添加扩展方法，该功能类似于 ruby 语言中的 mixin 特性。 Enjoy 默认已经为 BigDecimal、BigInteger、String、Integer、Long、Float、Double、Short、Byte 这 9 个常用的 java 类型...",
      "keywords": [],
      "status": "document",
      "sha256": "8f1879f3653423883ef137d81280dd4aa5c1d55bb1e2edb12088fc921f61565d"
    },
    {
      "id": "zh/15_enjoy/11_Spring boot 整合.md",
      "title": "Spring boot 整合",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/11_Spring%20boot%20%E6%95%B4%E5%90%88.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/11_Spring%20boot%20%E6%95%B4%E5%90%88.md",
      "source": "zh/15_enjoy/11_Spring boot 整合.md",
      "description": "Spring boot 整合 1、maven 坐标 Spring 整合可以在 pom.xml 中配置 jfinal 坐标，也可以配置 Enjoy Template Engine 的独立发布版本坐标，其 maven 坐标如下： JFinal Template Engine 的独立发布版本 Enjoy 只有 207K 大小，并且无任何第三方依赖。 2、Sp...",
      "keywords": [],
      "status": "document",
      "sha256": "2dd140c293d54e7cc9e99ddb5b6bf68bc6471ccc6aaea832a5ce04a559871110"
    },
    {
      "id": "zh/15_enjoy/12_独立使用 Enjoy.md",
      "title": "独立使用 Enjoy",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/12_%E7%8B%AC%E7%AB%8B%E4%BD%BF%E7%94%A8%20Enjoy.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/12_%E7%8B%AC%E7%AB%8B%E4%BD%BF%E7%94%A8%20Enjoy.md",
      "source": "zh/15_enjoy/12_独立使用 Enjoy.md",
      "description": "独立使用 Enjoy Enjoy Template Engine 的使用不限于 web，可以使用在任何 java 开发环境中。Enjoy 常被用于代码生成、email 生成、模板消息生成等具有模板特征数据的应用场景，使用方式极为简单。 由于很多同学提出要在非 jfinal 环境下使用 Enjoy，所以 Enjoy 模板引擎发布了独立版本，maven 坐...",
      "keywords": [],
      "status": "document",
      "sha256": "15de607dab7fef98be65445bbdb470b90338c71decb28091a7e451ade6e7ea72"
    },
    {
      "id": "zh/15_enjoy/13.md",
      "title": "tio-boot enjoy 自定义指令 localeDate",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/13.md",
      "source": "zh/15_enjoy/13.md",
      "description": "tio-boot enjoy 自定义指令 localeDate 背景 在使用 JFinal 模板引擎进行日期格式化时，默认的 #date 指令虽然支持多种格式化模式，但其在处理不同地区（Locale）时存在局限性。例如，默认情况下，#date(model.date, \"MMMM dd, yyyy\") 可能输出为 “一月 16, 2025”，而在某些项目...",
      "keywords": [],
      "status": "document",
      "sha256": "466b09a719956f1678f818ffaa7e8737dbc076d93b29a432124e826416399693"
    },
    {
      "id": "zh/15_enjoy/14.md",
      "title": "PromptEngine",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/14.md",
      "source": "zh/15_enjoy/14.md",
      "description": "PromptEngine 本文将详细讲解如何基于 JFinal Template Engine 封装一个专用于大模型提示词的工具类 —— PromptEngine，以及如何使用该工具类来渲染提示词模板。 一、PromptEngine 类的实现 我们首先创建一个名为 PromptEngine 的工具类，该类主要功能是通过 JFinal 的模板引擎加载和渲...",
      "keywords": [],
      "status": "document",
      "sha256": "0ebdb1c78aa86e63de175a9263a854932c935f891e7ef4219e9cffc4de146985"
    },
    {
      "id": "zh/15_enjoy/15.md",
      "title": "Enjoy 入门示例-擎渲染大模型请求体",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/15.md",
      "source": "zh/15_enjoy/15.md",
      "description": "Enjoy 入门示例-擎渲染大模型请求体 在大模型开发过程中，构建复杂的 JSON 请求体是一个常见且关键的步骤。手动构建这些 JSON 对象不仅繁琐，而且容易出错。幸运的是，Enjoy 模版引擎提供了一种高效、简便的方法来自动生成所需的 JSON 请求体，从而大幅提升开发效率和代码的可维护性。 本文将详细介绍如何使用 Enjoy 模版引擎渲染大模型的...",
      "keywords": [],
      "status": "document",
      "sha256": "632ac0521819ca8efd98cc9abb851e460a210b79edfab942e7db9ec5a9a91792"
    },
    {
      "id": "zh/15_enjoy/16.md",
      "title": "Tio Boot + Enjoy：分页与 SEO 实战指南",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/16.md",
      "source": "zh/15_enjoy/16.md",
      "description": "Tio Boot + Enjoy：分页与 SEO 实战指南 背景与目的 在构建现代 Web 应用时，我们往往需要同时兼顾 性能、用户体验 和 搜索引擎优化 (SEO)。 性能：后端要能高效分页，避免一次性返回海量数据，保证前端加载流畅； 用户体验：分页导航要直观、简洁，支持键盘快捷键与自定义每页大小； SEO：页面内容应能被搜索引擎爬虫直接识别，不依赖...",
      "keywords": [],
      "status": "document",
      "sha256": "477ed41151ae273ce84455b75dd54337a5461a1c5c7fde70a434c2fe9a590b23"
    },
    {
      "id": "zh/15_enjoy/17.md",
      "title": "TioBoot + Enjoy 生成 robots.txt 与 sitemap.xml：实战与SEO指南",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/17.md",
      "source": "zh/15_enjoy/17.md",
      "description": "TioBoot + Enjoy 生成 robots.txt 与 sitemap.xml：实战与SEO指南 背景与目的 为站点开放爬取并加速搜索引擎收录，robots.txt 与 sitemap.xml 是两块基础设施： robots.txt：告诉搜索引擎哪些资源可以或不可以抓取。 sitemap.xml：提供站点重要页面（如内容详情页）的结构化清单，包...",
      "keywords": [],
      "status": "document",
      "sha256": "5c64eb0e852cc8e36d148d77b5606f41cef0dacd113705de7da052462c84340d"
    },
    {
      "id": "zh/15_enjoy/18.md",
      "title": "Enjoy 使用示例",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/18.md",
      "source": "zh/15_enjoy/18.md",
      "description": "Enjoy 使用示例 渲染大模型提示词 本示例展示如何使用 JFinal 的 Enjoy 模板引擎来渲染翻译提示词(Prompt)。通过配置 Enjoy 引擎并加载模板，可以动态生成翻译请求内容。 配置 Enjoy 引擎 首先，创建一个配置类 EnjoyEngineConfig 来设置 Enjoy 引擎的基本参数。 RESOURCE_BASE_PATH...",
      "keywords": [],
      "status": "document",
      "sha256": "ede242f231b93b2de68c533f477083c0a95e5c43df75ebd2a1216f07a2cf833e"
    },
    {
      "id": "zh/15_enjoy/6.2/readme.md",
      "title": "6.2",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/6.2/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/6.2/readme.md",
      "source": "zh/15_enjoy/6.2/readme.md",
      "description": "6.2 本目录包含 3 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 1_20180115001833.png: 图片资源，用于本目录文档配图或界面示意。 1_20200529195957.png: 图片资源，用于本目录文档配图或界面示意。",
      "keywords": [],
      "status": "document",
      "sha256": "4572e375f5b4d2017af8ea7e13024fc94454f7dadc4e25074004ae8ed6c49935"
    },
    {
      "id": "zh/15_enjoy/images/readme.md",
      "title": "images",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/images/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/images/readme.md",
      "source": "zh/15_enjoy/images/readme.md",
      "description": "images 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 01.png: 图片资源，用于本目录文档配图或界面示意。",
      "keywords": [],
      "status": "document",
      "sha256": "d62f8d91449ee49e04c02548b59cd271cbcf19fe0043ab0b54e13152662a6c02"
    },
    {
      "id": "zh/15_enjoy/readme.md",
      "title": "15_enjoy",
      "language": "zh-CN",
      "chapter": "zh/15_enjoy",
      "url": "https://tio-boot.com/zh/15_enjoy/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/15_enjoy/readme.md",
      "source": "zh/15_enjoy/readme.md",
      "description": "15_enjoy 本目录包含 19 个文件和 2 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-boot 整合 Enjoy 模版引擎文档》。 : 文档《Tio-Boot 整合 Java-DB 与 Enjoy 模板引擎示例》。 : 文档《引擎配置》。 : 文档《表达式》。 : 文档《指...",
      "keywords": [],
      "status": "document",
      "sha256": "9cb932f3185ae3191e8a3e974312b246a2a2d236b944a80238c0c31be8b2dc7e"
    },
    {
      "id": "zh/16_定时任务/01.md",
      "title": "Quartz 定时任务集成指南",
      "language": "zh-CN",
      "chapter": "zh/16_定时任务",
      "url": "https://tio-boot.com/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/01.md",
      "source": "zh/16_定时任务/01.md",
      "description": "Quartz 定时任务集成指南 简介 Quartz 是一个功能强大的开源任务调度库，广泛应用于 Java 应用程序中以实现定时任务。然而，原生的 Quartz 由于其复杂性，可能会增加开发和维护的难度。为了简化这一过程，本文将介绍如何使用 tio-utils 对 Quartz 进行封装，从而提升开发效率和项目的可维护性。 Quartz 概述 Quart...",
      "keywords": [],
      "status": "document",
      "sha256": "d7771577fc84cf5ac4b396becaa44c259f9c238e1229e519ece4045e2ff1b548"
    },
    {
      "id": "zh/16_定时任务/02.md",
      "title": "分布式定时任务 xxl-jb",
      "language": "zh-CN",
      "chapter": "zh/16_定时任务",
      "url": "https://tio-boot.com/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/02.md",
      "source": "zh/16_定时任务/02.md",
      "description": "分布式定时任务 xxl-jb 20.1.简介 xxl-job 是一个分布式的定时任务执行框架,有调度中心和执行器两部分组成 调度中心:负责定时任务的调用 执行器:服务定时任务的执行 本篇文章介绍如何基于 tio-boot 创建一个执行器项目并注册的调度中心 20.2.安装 mysql 20.2.1.docker-run-mysql-8 使用命令连接 2...",
      "keywords": [],
      "status": "document",
      "sha256": "591310925f5776e46d5677a66fd3c24ca9f47247587838a795cacd26cea1805e"
    },
    {
      "id": "zh/16_定时任务/03.md",
      "title": "cron4j 使用指南",
      "language": "zh-CN",
      "chapter": "zh/16_定时任务",
      "url": "https://tio-boot.com/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/03.md",
      "source": "zh/16_定时任务/03.md",
      "description": "cron4j 使用指南 Cron4jPlugin 是一个集成在 Java 中的任务调度插件，通过使用 Cron4jPlugin，可以方便地利用通用的 cron 表达式实现任务调度功能。 入门示例 添加依赖 在项目的 pom.xml 文件中添加以下依赖： 依赖说明： java-db：JavaDB 插件依赖。 cron4j：cron4j 任务调度框架。 C...",
      "keywords": [],
      "status": "document",
      "sha256": "124566969ea70f83f06f75449420b1d26733f3579033eab2b4fe27a4a6b88608"
    },
    {
      "id": "zh/16_定时任务/readme.md",
      "title": "16_定时任务",
      "language": "zh-CN",
      "chapter": "zh/16_定时任务",
      "url": "https://tio-boot.com/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/16_%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1/readme.md",
      "source": "zh/16_定时任务/readme.md",
      "description": "16_定时任务 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Quartz 定时任务集成指南》。 : 文档《分布式定时任务 xxl-jb》。 : 文档《cron4j 使用指南》。",
      "keywords": [],
      "status": "document",
      "sha256": "ff6458eae9ea2646285d254078d0432dde8ce2970026eabf439f8f131ac131e3"
    },
    {
      "id": "zh/17_tests/01.md",
      "title": "TioBootTest：环境与 AOP 初始化",
      "language": "zh-CN",
      "chapter": "zh/17_tests",
      "url": "https://tio-boot.com/zh/17_tests/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/17_tests/01.md",
      "source": "zh/17_tests/01.md",
      "description": "TioBootTest：环境与 AOP 初始化 TioBootTest 是测试初始化工具，不是 JUnit 运行器，也不会自动启动 HTTP 服务器、创建测试数据库或回滚数据。本章依据 nexus.io.tio.boot.testing.TioBootTest 当前源码。 方法与边界 load(null) 不主动设置环境名，最终环境由有效配置决定，不能...",
      "keywords": [],
      "status": "document",
      "sha256": "b5d9f0c282168183af3db80835e2e648be73fbf87627433b7eb7117699ca6264"
    },
    {
      "id": "zh/17_tests/02.md",
      "title": "真实 HTTP 集成测试",
      "language": "zh-CN",
      "chapter": "zh/17_tests",
      "url": "https://tio-boot.com/zh/17_tests/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/17_tests/02.md",
      "source": "zh/17_tests/02.md",
      "description": "真实 HTTP 集成测试 直接调用 Handler 方法无法验证端口、上下文、拦截器及响应编码。以下示例使用 JDK 21、JUnit Jupiter 和当前 nexus.io 版本 tio-boot，项目需配置 JUnit 5 执行器；不需要数据库或第三方账号。 CI 应分配未占用端口，例如 PowerShell 使用 mvn test '-Dtes...",
      "keywords": [],
      "status": "document",
      "sha256": "2cac25af0a1b8a0c0eb37260955b6ee27a74f43d2131fc0a0f72ff5513348c6e"
    },
    {
      "id": "zh/17_tests/03.md",
      "title": "数据库集成测试与隔离",
      "language": "zh-CN",
      "chapter": "zh/17_tests",
      "url": "https://tio-boot.com/zh/17_tests/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/17_tests/03.md",
      "source": "zh/17_tests/03.md",
      "description": "数据库集成测试与隔离 TioBootTest 不提供数据库隔离。优先使用专用测试库；采用 PostgreSQL 独立 schema 时，应为每次测试生成固定前缀加随机十六进制字符的名称，并限定所有测试连接的 search_path。 测试流程 显式启用集成测试，读取测试连接配置；未启用时报告跳过。 创建本次专属 schema，连接池内每个连接都使用它。...",
      "keywords": [],
      "status": "document",
      "sha256": "e9b9717fc01d354fa824eac66e44a0f760a431402e316c0f60a8ebf5e3736d99"
    },
    {
      "id": "zh/17_tests/readme.md",
      "title": "17_tests",
      "language": "zh-CN",
      "chapter": "zh/17_tests",
      "url": "https://tio-boot.com/zh/17_tests/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/17_tests/readme.md",
      "source": "zh/17_tests/readme.md",
      "description": "17_tests 先理解测试初始化的边界，再进行真实 HTTP 与数据库隔离测试。 文件清单 : 当前目录的导航与文件摘要。 : TioBootTest：环境与 AOP 初始化。 : 真实 HTTP 集成测试。 : 数据库集成测试与隔离。",
      "keywords": [],
      "status": "document",
      "sha256": "efcee836013f9f6f5bdb1a017c7ae2e17540649d49705b5bc7ac747a1dd437f0"
    },
    {
      "id": "zh/18_mybatis/01.md",
      "title": "Tio-Boot 整合 MyBatis",
      "language": "zh-CN",
      "chapter": "zh/18_mybatis",
      "url": "https://tio-boot.com/zh/18_mybatis/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/18_mybatis/01.md",
      "source": "zh/18_mybatis/01.md",
      "description": "Tio-Boot 整合 MyBatis 简介 Tio-Boot：Tio-Boot 是一个高性能的 Java 网络编程框架，用于快速构建 Web、WebSocket、TCP 等网络应用。在本教程中，我们将使用 Tio-Boot 启动一个简单的 Web 服务，以演示如何与 MyBatis 整合。 MyBatis：MyBatis 是一个持久层框架，简化了 J...",
      "keywords": [],
      "status": "document",
      "sha256": "18dcdcb5365c643508e5cb89930c02a52c442a36fd2f4ad97d93610743a7241e"
    },
    {
      "id": "zh/18_mybatis/02.md",
      "title": "使用配置类方式整合 MyBatis",
      "language": "zh-CN",
      "chapter": "zh/18_mybatis",
      "url": "https://tio-boot.com/zh/18_mybatis/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/18_mybatis/02.md",
      "source": "zh/18_mybatis/02.md",
      "description": "使用配置类方式整合 MyBatis 在本教程中，我们将展示如何通过配置类的方式来整合 MyBatis，而不使用 mybatis.xml 配置文件。我们将一步步解释每个部分的原理和原因，以帮助读者理解为什么要这样做。 整合 mybatis 一、添加依赖 首先，在项目的 pom.xml 文件中添加以下依赖： 说明： MyBatis：对象关系映射框架，用于与...",
      "keywords": [],
      "status": "document",
      "sha256": "b63e3ec546cdfb0779e29fafae712d555dc9b08997de68bc5198840a2bb6e511"
    },
    {
      "id": "zh/18_mybatis/03.md",
      "title": "整合数据源",
      "language": "zh-CN",
      "chapter": "zh/18_mybatis",
      "url": "https://tio-boot.com/zh/18_mybatis/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/18_mybatis/03.md",
      "source": "zh/18_mybatis/03.md",
      "description": "整合数据源 Druid 引言 本项目中我们采用了 MyBatis 作为 ORM 框架，并集成了阿里巴巴提供的 Druid 数据源管理工具来优化数据库连接的管理和性能。Druid 提供了强大的监控、扩展和配置能力，适用于大多数企业级应用场景。 添加 Druid 依赖 在项目的 pom.xml 文件中添加 Druid 的依赖配置，确保能够使用 Druid ...",
      "keywords": [],
      "status": "document",
      "sha256": "710c6ea60d03a94749eca77cc5c79bc16c26b1d6e7b271881b9a341427eb831f"
    },
    {
      "id": "zh/18_mybatis/04.md",
      "title": "使用 mybatis-plus 整合 tdengine",
      "language": "zh-CN",
      "chapter": "zh/18_mybatis",
      "url": "https://tio-boot.com/zh/18_mybatis/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/18_mybatis/04.md",
      "source": "zh/18_mybatis/04.md",
      "description": "使用 mybatis-plus 整合 tdengine 介绍如何使用 tio-boot 结合 Mybatis-Plus 对 TDengine 进行整合。TDengine 支持 SQL 语言，允许我们利用 Mybatis-Plus 的强大功能进行数据操作。tio-boot 是一个高效的 Java Web 框架，用于构建基于事件驱动的应用程序。 添加依赖 ...",
      "keywords": [],
      "status": "document",
      "sha256": "89acd96ce6355428cce0643fd2e24685bd512017b1383630463c462a52f68b42"
    },
    {
      "id": "zh/18_mybatis/05.md",
      "title": "整合 mybatis-plus",
      "language": "zh-CN",
      "chapter": "zh/18_mybatis",
      "url": "https://tio-boot.com/zh/18_mybatis/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/18_mybatis/05.md",
      "source": "zh/18_mybatis/05.md",
      "description": "整合 mybatis-plus 添加依赖 初始化测试数据 创建数据库 创建表 随便插入几条条记录 添加实体类和 Mapper 添加配置文件 mybatis.xml 使用工具类类整合 mybatis-plus 添加配置文件 mybatis.xml 数据源配置 mapper 配置 MybatisPlusUtils 使用 MybatisSqlSessionF...",
      "keywords": [],
      "status": "document",
      "sha256": "4847bd30f083da17d8311669a4cba7ea2c868e935bd1287daf1d1dceb7d7f03a"
    },
    {
      "id": "zh/18_mybatis/readme.md",
      "title": "18_mybatis",
      "language": "zh-CN",
      "chapter": "zh/18_mybatis",
      "url": "https://tio-boot.com/zh/18_mybatis/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/18_mybatis/readme.md",
      "source": "zh/18_mybatis/readme.md",
      "description": "18_mybatis 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Tio-Boot 整合 MyBatis》。 : 文档《使用配置类方式整合 MyBatis》。 : 文档《整合数据源》。 : 文档《使用 mybatis-plus 整合 tdengine》。 : ...",
      "keywords": [],
      "status": "document",
      "sha256": "f93a0b701d92899d2eb4c3c1eba2298b3815ab3cb3b86feb4c00a5b9a46dbad0"
    },
    {
      "id": "zh/19_redis/00.md",
      "title": "使用 Docker 安装 Redis",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/00.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/00.md",
      "source": "zh/19_redis/00.md",
      "description": "使用 Docker 安装 Redis，配置密码、host 网络、数据持久化，并通过 redis-cli 验证连接。",
      "keywords": [
        "Redis",
        "Docker",
        "安装",
        "requirepass",
        "redis-cli",
        "host",
        "持久化"
      ],
      "status": "document",
      "sha256": "4a45cddde0a230330eb70549699bd1382ade6141941ebb9ebb3eee3f56fca7ae"
    },
    {
      "id": "zh/19_redis/01.md",
      "title": "使用 java-db 整合 Redis",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/01.md",
      "source": "zh/19_redis/01.md",
      "description": "java-db 的 RedisPlugin 初始化、连接池生命周期、RedisDb 调用与序列化选择。",
      "keywords": [
        "Redis",
        "RedisPlugin",
        "RedisDb",
        "java-db",
        "Jedis",
        "连接池",
        "序列化"
      ],
      "status": "document",
      "sha256": "f89b87380cf7c0e0508209ce59d576c41257eaf853613baebfd300ee08b8e133"
    },
    {
      "id": "zh/19_redis/02.md",
      "title": "Java DB Redis 相关 Api",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/02.md",
      "source": "zh/19_redis/02.md",
      "description": "Java DB Redis 相关 Api Redis.use() 返回 RedisDb；分布式锁限制见 。 简介 Java DB 内置了许多与 Redis 相关的类，这些类可以简化 Redis 操作并提高开发效率。 相关类 以下是对 Redis 相关的文档说明： Redis 类 Redis 类是一个 Redis 工具类，提供了一组静态方法来简化 Red...",
      "keywords": [],
      "status": "document",
      "sha256": "4899fa8c0047aa011649a83c83472700aeba139ba72ae8254b34258d9d06ad21"
    },
    {
      "id": "zh/19_redis/03.md",
      "title": "redis 使用示例",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/03.md",
      "source": "zh/19_redis/03.md",
      "description": "redis 使用示例 以下片段假设已按 启动插件，并导入 nexus.io.redis.Redis 和 nexus.io.redis.RedisDb。除独立给出导入的示例外，省略重复 import；资源在应用关闭时统一释放。 使用示例 示例 1：设置和获取字符串值 示例 2：操作整数值 示例 3：操作哈希表 示例 4：将对象存入哈希表 示例 5：操作列...",
      "keywords": [],
      "status": "document",
      "sha256": "864fa6d515ab06401e8d3768fd70d5cbfe9dd97317c35ec6b890cbb8ac421d63"
    },
    {
      "id": "zh/19_redis/04.md",
      "title": "和 RedisTemplate 协作",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/04.md",
      "source": "zh/19_redis/04.md",
      "description": "和 RedisTemplate 协作 问题描述 在之前的旧项目中，使用了 Spring Boot 框架，并通过 RedisTemplate 类操作数据库。RedisTemplate 在向 Redis 中写入数据时，会对 key 和 value 进行序列化。现在的问题是，如何使用 Java DB 的 Redis 工具读取由 RedisTemplate 序...",
      "keywords": [],
      "status": "document",
      "sha256": "d803f33a5eb293bbf6809c594b33f155117e3fdb411bc234570b0d2538968daa"
    },
    {
      "id": "zh/19_redis/05.md",
      "title": "使用 Jedis 连接池接入 Redis",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/05.md",
      "source": "zh/19_redis/05.md",
      "description": "使用 Jedis 连接池接入 Redis Jedis 是 Redis 的 Java 客户端。本章 java-db 示例使用 Jedis 4.3.1。直接使用 Jedis 时，应共享 JedisPool，每次操作从池中借出连接并在结束后归还。 依赖 最小示例 本例假设本地 Redis 无认证。Web 项目应在应用初始化时创建连接池、请求中借用连接、应用关...",
      "keywords": [],
      "status": "document",
      "sha256": "4df6db6298d0b678ec6dba2090864b2c3ce15feaebdf977c77e8402032941c96"
    },
    {
      "id": "zh/19_redis/06.md",
      "title": "hutool RedisDS",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/06.md",
      "source": "zh/19_redis/06.md",
      "description": "hutool RedisDS 添加依赖,tio-boot 已经内置了 hutool-all 以来,包含 hutool-redis,主要添加 jedis 依赖即可 配置类 测试 Controller 这两段代码分别是配置类和控制器类的示例，用于在 Java 项目中使用 Hutool 的 RedisDS 类来配置和访问 Redis 数据库。 配置类 (Hu...",
      "keywords": [],
      "status": "document",
      "sha256": "7fb92018edd63ae04de00cb2a33efd39430e9ee85d8ccff2fd8131fe003352ad"
    },
    {
      "id": "zh/19_redis/07.md",
      "title": "Redisson",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/07.md",
      "source": "zh/19_redis/07.md",
      "description": "Redisson 本节解释如何使用 tio-boot 通过 Redisson 整合 redis Redisson 简介 什么是 Redisson Redisson 是一个强大的 Redis 客户端，提供了丰富的分布式数据结构和工具，适用于 Java 应用的高可扩展性和高并发需求。 Redisson 的主要用途 分布式数据结构：Redisson 提供标准...",
      "keywords": [],
      "status": "document",
      "sha256": "21f5962b08920854df0fa36f612ead286b771ffbae1e8f13e70a31d742ae14f8"
    },
    {
      "id": "zh/19_redis/08.md",
      "title": "Caffeine 与 Redis 两级缓存",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/08.md",
      "source": "zh/19_redis/08.md",
      "description": "Caffeine 与 Redis 两级缓存 Caffeine 和 Redis 的区别 Caffeine 本身不会将数据存储到 Redis 中。如果想要将数据缓存到 Redis 中，需要使用专门为 Redis 设计的缓存解决方案，如 Spring Cache with Redis 或 Jedis。这些工具和库允许直接与 Redis 数据库交互，将数据存储...",
      "keywords": [],
      "status": "document",
      "sha256": "cb0d8778a8a1f1310f768afb6653a917fa2f48332090a8a078dafda408b22425"
    },
    {
      "id": "zh/19_redis/09.md",
      "title": "使用 CacheUtils 整合 caffeine 和 redis 实现的两级缓存",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/09.md",
      "source": "zh/19_redis/09.md",
      "description": "使用 CacheUtils 整合 caffeine 和 redis 实现的两级缓存 配置类 CacheNameConfig 测试类 CacheCaffeineRedisTestController 访问 http://localhost/cache/caffeine/redis/test 查看测试结果",
      "keywords": [],
      "status": "document",
      "sha256": "2a646f61ebc398946da6c1a0a2802cf8c5ff345a2916e209e2dbb18137604b66"
    },
    {
      "id": "zh/19_redis/readme.md",
      "title": "19_redis",
      "language": "zh-CN",
      "chapter": "zh/19_redis",
      "url": "https://tio-boot.com/zh/19_redis/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/19_redis/readme.md",
      "source": "zh/19_redis/readme.md",
      "description": "19_redis 本章集中介绍 Redis 安装、接入、RedisPlugin / RedisDb API、数据操作、序列化互通及两级缓存。先完成 Docker 安装与连接验证，再阅读 java-db 整合，并根据项目选用 Jedis、Hutool 或 Redisson。 本章区分 java-db 的 RedisDb 和 tio-utils 的 Tio...",
      "keywords": [],
      "status": "document",
      "sha256": "0f5cd24f50ebaf7bcd084cbbde807f1446a6b5302f2c880235a8a6afe25461bb"
    },
    {
      "id": "zh/20_mongodb/01.md",
      "title": "tio-boot 使用 mongo-java-driver 操作 mongodb",
      "language": "zh-CN",
      "chapter": "zh/20_mongodb",
      "url": "https://tio-boot.com/zh/20_mongodb/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/20_mongodb/01.md",
      "source": "zh/20_mongodb/01.md",
      "description": "tio-boot 使用 mongo-java-driver 操作 mongodb 在这个示例中,创建了一个使用 MongoDB 的简单 Java Web 应用程序。这个应用程序包括了数据库依赖配置、数据库操作工具类、配置类、控制器类以及实际的 HTTP 请求处理。下面我将详细解释每一部分的作用和逻辑。 MongoDB Java Driver 依赖 Mo...",
      "keywords": [],
      "status": "document",
      "sha256": "937c1d8753a4048237492fc5ee2648ada63296f8b8a2042ab62f9fafc3910c48"
    },
    {
      "id": "zh/20_mongodb/readme.md",
      "title": "20_mongodb",
      "language": "zh-CN",
      "chapter": "zh/20_mongodb",
      "url": "https://tio-boot.com/zh/20_mongodb/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/20_mongodb/readme.md",
      "source": "zh/20_mongodb/readme.md",
      "description": "20_mongodb 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-boot 使用 mongo-java-driver 操作 mongodb》。",
      "keywords": [],
      "status": "document",
      "sha256": "6c39d776319ed7f8d0876391bfd8ffdae79bb4422bacbe398ab19ab9403459cf"
    },
    {
      "id": "zh/21_elastic-search/01.md",
      "title": "Elasticsearch",
      "language": "zh-CN",
      "chapter": "zh/21_elastic-search",
      "url": "https://tio-boot.com/zh/21_elastic-search/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/21_elastic-search/01.md",
      "source": "zh/21_elastic-search/01.md",
      "description": "Elasticsearch Introduction Elasticsearch 是一个基于分布式架构的搜索和分析引擎，主要用于处理大规模的文本数据。它建立在 Apache Lucene 之上，并提供了一个基于 RESTful API 的接口，使得数据的索引和搜索变得非常简便。以下是 Elasticsearch 的简介和一些基本概念： 简介 Elast...",
      "keywords": [],
      "status": "document",
      "sha256": "4d85d9bd70eb54799b80407743d08ad0acb0b84b6f3f87cebf76bf7ca3e73c85"
    },
    {
      "id": "zh/21_elastic-search/02.md",
      "title": "JavaDB 整合 ElasticSearch",
      "language": "zh-CN",
      "chapter": "zh/21_elastic-search",
      "url": "https://tio-boot.com/zh/21_elastic-search/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/21_elastic-search/02.md",
      "source": "zh/21_elastic-search/02.md",
      "description": "JavaDB 整合 ElasticSearch Java 提供了一个 Elastic 类，用于简化与 ElasticSearch 的整合过程以及执行相关的 ES 操作。本文档将介绍如何在 Java 项目中通过配置类来实现与 ElasticSearch 的整合。 使用 JavaDB 整合 ElasticSearch 添加依赖 配置文件 (app.prop...",
      "keywords": [],
      "status": "document",
      "sha256": "75b11465812d8be8c79b697e93d1c6c87a5f82192f10785f9d8a6a09e6d8eaa3"
    },
    {
      "id": "zh/21_elastic-search/03.md",
      "title": "Elastic 工具类使用指南",
      "language": "zh-CN",
      "chapter": "zh/21_elastic-search",
      "url": "https://tio-boot.com/zh/21_elastic-search/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/21_elastic-search/03.md",
      "source": "zh/21_elastic-search/03.md",
      "description": "Elastic 工具类使用指南 本章介绍了 JavaDB 提供的 Elastic 工具类的使用方法，包括索引的创建、查看、删除，以及文档的批量导入、查询、更新和删除等操作。 索引操作 创建索引 创建索引的命令如下： 查看索引 要查看索引的设置，可以使用以下命令： 示例返回结果： 删除索引 删除索引的命令如下： Java 代码示例 数据文档操作 批量导入...",
      "keywords": [],
      "status": "document",
      "sha256": "23bfe2733671eea9c101aa9e95cebabd316f2b43d8b8debee2ef17b3cfa36e1f"
    },
    {
      "id": "zh/21_elastic-search/04.md",
      "title": "Elastic-search 注意事项",
      "language": "zh-CN",
      "chapter": "zh/21_elastic-search",
      "url": "https://tio-boot.com/zh/21_elastic-search/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/21_elastic-search/04.md",
      "source": "zh/21_elastic-search/04.md",
      "description": "Elastic-search 注意事项 Elastic-search 在某些时候并不是效率最高的选择,例如根据主键查询和索引查询 在查询语句为 SELECT * FROM table WHERE id=? 的场景下，具体分析如下： PostgreSQL: 适用场景：PostgreSQL 是关系型数据库，最适合结构化查询，特别是在基于主键或唯一索引的精确...",
      "keywords": [],
      "status": "document",
      "sha256": "b51b3646c9b90404a4998b78885e53a4e06f67cea167fb011601d3c4c3844edc"
    },
    {
      "id": "zh/21_elastic-search/05.md",
      "title": "ES 课程示例文档",
      "language": "zh-CN",
      "chapter": "zh/21_elastic-search",
      "url": "https://tio-boot.com/zh/21_elastic-search/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/21_elastic-search/05.md",
      "source": "zh/21_elastic-search/05.md",
      "description": "ES 课程示例文档 在将关系数据库中的数据导入 Elasticsearch 以实现高效搜索的过程中，本文展示了如何使用 Java 集成 PostgreSQL 和 Elasticsearch。通过创建索引、批量导入数据、以及构建复杂查询，我们能够实现对大量课程数据的快速检索和分析。此方法不仅提高了数据查询的效率，还为用户提供了更为灵活的搜索功能，适用于需...",
      "keywords": [],
      "status": "document",
      "sha256": "3ac614d3e908ca2ed10d79e9108bc0a9c80c71922d30674f1202809aeae76ebf"
    },
    {
      "id": "zh/21_elastic-search/readme.md",
      "title": "21_elastic-search",
      "language": "zh-CN",
      "chapter": "zh/21_elastic-search",
      "url": "https://tio-boot.com/zh/21_elastic-search/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/21_elastic-search/readme.md",
      "source": "zh/21_elastic-search/readme.md",
      "description": "21_elastic-search 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Elasticsearch》。 : 文档《JavaDB 整合 ElasticSearch》。 : 文档《Elastic 工具类使用指南》。 : 文档《Elastic-search ...",
      "keywords": [],
      "status": "document",
      "sha256": "f4b663019a3249877f5e82561cd1e3f1a4bf4a02c79b42c5a76529fb73f7160a"
    },
    {
      "id": "zh/22_mq/01.md",
      "title": "Mica-mqtt",
      "language": "zh-CN",
      "chapter": "zh/22_mq",
      "url": "https://tio-boot.com/zh/22_mq/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/22_mq/01.md",
      "source": "zh/22_mq/01.md",
      "description": "Mica-mqtt 添加依赖 这段代码主要涉及两个 Java 类，它们是用于配置和实现 MQTT 客户端的功能。让我们逐个进行解释： MqttClientConnectListener 类 这个类实现了 IMqttClientConnectListener 接口，用于监听 MQTT 客户端的连接状态。 方法: onConnected: 当客户端成功连接...",
      "keywords": [],
      "status": "document",
      "sha256": "34da39deb6746e819f56323274c564529a92eb4daf7eebe16c9e2bb925f1bcfa"
    },
    {
      "id": "zh/22_mq/02.md",
      "title": "EMQX",
      "language": "zh-CN",
      "chapter": "zh/22_mq",
      "url": "https://tio-boot.com/zh/22_mq/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/22_mq/02.md",
      "source": "zh/22_mq/02.md",
      "description": "EMQX tio-boot 整合EMQX 本文用来设置和运行一个基于 MQTT 协议的客户端程序，利用 Eclipse Paho MQTT 客户端库和 tio-boot 框架进行消息发布和订阅。 Maven 依赖 首先，<dependency>部分是 Maven 构建配置，用于在的项目中包含 Eclipse Paho MQTT 客户端库。 app.pr...",
      "keywords": [],
      "status": "document",
      "sha256": "a4f28e2633338a113b8c6a42d5e86dde8800414c45214c8515ba5ee171a75c2b"
    },
    {
      "id": "zh/22_mq/03.md",
      "title": "Disruptor",
      "language": "zh-CN",
      "chapter": "zh/22_mq",
      "url": "https://tio-boot.com/zh/22_mq/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/22_mq/03.md",
      "source": "zh/22_mq/03.md",
      "description": "Disruptor 背景 工作中遇到项目使用 Disruptor 做消息队列,对没看错,不是 Kafka,也不是 rabbitmq;Disruptor 有个最大的优点就是快,还有一点它是开源的哦,下面做个简单的记录. Disruptor 介绍 Disruptor 的 github 主页：https://github.com/LMAX-Exchange/...",
      "keywords": [],
      "status": "document",
      "sha256": "6b63657697373be677f40305b449e5213db3eb4f349181957694ea2ad9a45980"
    },
    {
      "id": "zh/22_mq/readme.md",
      "title": "22_mq",
      "language": "zh-CN",
      "chapter": "zh/22_mq",
      "url": "https://tio-boot.com/zh/22_mq/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/22_mq/readme.md",
      "source": "zh/22_mq/readme.md",
      "description": "22_mq 本章介绍 MQTT 接入（Mica MQTT、EMQX）与进程内事件处理（Disruptor）。Disruptor 是进程内组件，与独立消息代理的部署方式不同。Kafka 与 AWS MSK 见 。 阅读目录",
      "keywords": [],
      "status": "document",
      "sha256": "d9bf75c1a01a27313d22835ae0f04443435238166833a5842e74f3aea79a24e4"
    },
    {
      "id": "zh/23_kafka/01.md",
      "title": "Kafka",
      "language": "zh-CN",
      "chapter": "zh/23_kafka",
      "url": "https://tio-boot.com/zh/23_kafka/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/23_kafka/01.md",
      "source": "zh/23_kafka/01.md",
      "description": "Kafka 本文演示如何在 tio-boot 项目中集成 Kafka，实现消息的生产与消费，并通过 HTTP 接口触发消息发送。 一、Kafka 安装与启动 Kafka 依赖 Zookeeper（新版本可用 KRaft，但这里用经典方式，简单稳定）。 Zookeeper 下载 ZooKeeper 3.9.5 下载目录 里面可以看到： apache-zo...",
      "keywords": [],
      "status": "document",
      "sha256": "486cc63f7b5ce0c69bdf9843d81e63ed9991fbf54e92c366c1319781de6663bb"
    },
    {
      "id": "zh/23_kafka/02.md",
      "title": "AWS MSK",
      "language": "zh-CN",
      "chapter": "zh/23_kafka",
      "url": "https://tio-boot.com/zh/23_kafka/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/23_kafka/02.md",
      "source": "zh/23_kafka/02.md",
      "description": "AWS MSK tio-boot-admin 的 Kafka 相关类使用包名 nexus.io.tio.boot.admin.kafaka。导入时请注意 kafaka 的拼写。 tio-boot整合AWS MSK 一、准备工作 接入前先确认这几件事： MSK 集群已创建 Topic 已存在，或者由程序自动创建 应用运行环境能访问 MSK 应用绑定的 A...",
      "keywords": [],
      "status": "document",
      "sha256": "80dd17a2de1899495974e5d5b110804f334d975f637f541229826d677eb6ca8d"
    },
    {
      "id": "zh/23_kafka/readme.md",
      "title": "23_kafka",
      "language": "zh-CN",
      "chapter": "zh/23_kafka",
      "url": "https://tio-boot.com/zh/23_kafka/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/23_kafka/readme.md",
      "source": "zh/23_kafka/readme.md",
      "description": "23_kafka 本章介绍 Apache Kafka 的接入以及 AWS Managed Streaming for Apache Kafka（MSK）相关配置。先阅读 Kafka，再按所用部署环境阅读 AWS MSK。MQTT 与进程内事件处理见 。 阅读目录",
      "keywords": [],
      "status": "document",
      "sha256": "45e5c74f98d949cce40317c8b38cd031c958cf479cdaba9686ed41bd97bf19eb"
    },
    {
      "id": "zh/24_tio/01.md",
      "title": "TioBootServer",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/01.md",
      "source": "zh/24_tio/01.md",
      "description": "TioBootServer 概述 TioBootServer 是 Tio 框架的核心启动类，负责初始化和启动 Tio 服务器。它提供了一个结构化的方式来配置和启动的服务器应用程序。在启动过程中，TioBootServer 将大量的类以静态变量的形式存储，使得开发者可以在框架启动前后进行灵活的配置和操作。 主要功能 初始化和启动: 通过 init 方法初...",
      "keywords": [],
      "status": "document",
      "sha256": "72f979690ff5e59b80f6e242a53a101f10513f39cec216745e0eb60942433771"
    },
    {
      "id": "zh/24_tio/02.md",
      "title": "独立端口启动 TCP 服务器",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/02.md",
      "source": "zh/24_tio/02.md",
      "description": "独立端口启动 TCP 服务器 概述 T-io 是一个高性能、低延迟的 Java AIO 网络编程框架，可用于开发各类 TCP、UDP 或 WebSocket 应用。而 tio-boot 则是在 t-io 核心之上构建的快速开发框架，它通过约定优于配置和自动化注解，极大地简化了网络应用的开发流程。 tio-boot 提供了两种处理 TCP 数据的方式： ...",
      "keywords": [],
      "status": "document",
      "sha256": "84c393aab7f985165fd9805d31a906229e767a892f95135f75927790293fb1b8"
    },
    {
      "id": "zh/24_tio/03.md",
      "title": "内置 TCP 处理器",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/03.md",
      "source": "zh/24_tio/03.md",
      "description": "内置 TCP 处理器 简介 tio-boot 框架内置了对 TCP 的支持.tio-boot 内置了协议识别算法，使得一个端口能够同时支持 TCP、HTTP 和 WebSocket 三种协议。当一个数据包到达 tio-boot-server 时，TioBootServerHandler 会根据内置的协议识别算法，选择合适的处理器来处理该协议的请求。 支...",
      "keywords": [],
      "status": "document",
      "sha256": "f7e0129c1fd0d048d75373b0e2ba14c434340340ab1cb0e903d52832c56ceb20"
    },
    {
      "id": "zh/24_tio/04.md",
      "title": "独立启动 UDPServer",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/04.md",
      "source": "zh/24_tio/04.md",
      "description": "独立启动 UDPServer tio-boot 内置了 UDPServer,开发者口可以通过两种方式启动 独立方式 UDPServer 占用单独的端口 联合方式 UDPServer 和其他协议共用一个端口 操作系统会自动区分 TCP 和 UDP TCP 和 UDP 的区分是由操作系统的网络协议栈进行的。当数据包到达网络接口时，操作系统会检查数据包的协议...",
      "keywords": [],
      "status": "document",
      "sha256": "c41caaa007783804049fe46be374d47f5bd3a8b7dde0cc485c846e711ba68ecf"
    },
    {
      "id": "zh/24_tio/05.md",
      "title": "使用内置 UDPServer",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/05.md",
      "source": "zh/24_tio/05.md",
      "description": "使用内置 UDPServer tio-boot 内置了 UDPServer tio-boot 内置了 UDP Server,只需要配置 UDPHandler 即可使用 将 UDPServer 和 TioBoot 配置为相同的端口即可,其他细节可以参考上一章节 参考文献 tiocloud 文档资料",
      "keywords": [],
      "status": "document",
      "sha256": "8c1a35e7aebe8c339ed89e4fcf85e1fc2993b750a223a28126c2d3632859eccc"
    },
    {
      "id": "zh/24_tio/06.md",
      "title": "t-io 消息处理流程",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/06.md",
      "source": "zh/24_tio/06.md",
      "description": "t-io 消息处理流程 t-io 是一个高效的 Java 网络通信框架，它通过 Packet、ChannelContext、AioHandler 和 AioListener 等核心组件，处理 TCP 连接的数据收发和业务逻辑。以下是关于这些组件的详细介绍以及消息处理的过程。 1. Packet Packet 是用于表示业务数据结构的类。在使用 t-io...",
      "keywords": [],
      "status": "document",
      "sha256": "3daf39bf1cfd54b2376b073a7146a0be466e06aaf676810b9dddb957eb6a2a93"
    },
    {
      "id": "zh/24_tio/07.md",
      "title": "tio-运行原理详解",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/07.md",
      "source": "zh/24_tio/07.md",
      "description": "tio-运行原理详解 t-io 是一个高效、轻量级的异步 I/O 框架，广泛用于处理高并发网络通信场景，支持 TCP、UDP、WebSocket 和 Http 等协议。本文将详细解析 t-io 的运行机制，包括其核心组件、数据处理流程、线程池设计和连接管理机制。通过全面解析这些内容，可以帮助开发者更好地理解 t-io 的工作原理，进而在实际项目中灵活运...",
      "keywords": [],
      "status": "document",
      "sha256": "c5e0a5efa310138983313efd985024c082741c57adb2fb67e85d0fa25f826592"
    },
    {
      "id": "zh/24_tio/08.md",
      "title": "TioConfig",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/08.md",
      "source": "zh/24_tio/08.md",
      "description": "TioConfig 场景介绍 在构建一个 TCP 服务器时，我们通常会先选择一个端口来监听客户端连接，然后创建多个线程池来执行相关任务，如消息发送、数据包解码、数据包处理等。此外，还需要维护与客户端连接相关的各种数据。为了实现与业务逻辑的互动，通常需要将客户端连接与业务数据绑定起来，例如将某个客户端绑定到一个群组、用户 ID、Token 等。 TioC...",
      "keywords": [],
      "status": "document",
      "sha256": "8cc05078466a9c1adf55dd7e7ff9423f7a38e6104cfb0b17485c3ad29ce182cd"
    },
    {
      "id": "zh/24_tio/09.md",
      "title": "ChannelContext",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/09.md",
      "source": "zh/24_tio/09.md",
      "description": "ChannelContext ChannelContext 对象是每个 TCP 连接建立后生成的一个关键对象。它是一个抽象类，具体取决于是使用 t-io 作为 TCP 客户端还是作为 TCP 服务器。如果使用 t-io 作为 TCP 客户端，那么将获得一个 ClientChannelContext 对象；如果使用 t-io 作为 TCP 服务器，那么将...",
      "keywords": [],
      "status": "document",
      "sha256": "afe5dcb1bccab47c1a6b35c77764cc6f44a1e6689b5c41bec875ee60ffa85114"
    },
    {
      "id": "zh/24_tio/10.md",
      "title": "Tio 工具类",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/10.md",
      "source": "zh/24_tio/10.md",
      "description": "Tio 工具类 Tio是一个用于管理网络通信的核心类，特别是在处理客户端和服务器之间的连接、消息发送、连接绑定和关闭等功能。类包含了大量的用于管理网络连接、发送和接收数据包、处理连接状态、以及管理连接的黑名单等操作的方法。这些方法使得开发者可以在客户端和服务器之间有效地进行通信，并对连接进行精细化管理. 下面是每个方法的中文解释：Tio 静态内部类 I...",
      "keywords": [],
      "status": "document",
      "sha256": "97181818a13af176841c499ea6d2e82d2a82ddfdfe952b839a244021f3860e9e"
    },
    {
      "id": "zh/24_tio/11.md",
      "title": "业务数据绑定",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/11.md",
      "source": "zh/24_tio/11.md",
      "description": "业务数据绑定 在网络编程中，资源绑定是将业务相关的数据和 TCP 连接（即 ChannelContext）关联起来的关键过程。例如，将一个连接表示为一个特定用户。假设 ChannelContext-A 代表了用户张三，张三的 userid 为 333，可以使用以下代码进行绑定： t-io 提供了 4 种内置的资源绑定方式。用户可以灵活运用这些绑定方法来...",
      "keywords": [],
      "status": "document",
      "sha256": "e4475f1878719150f191bebaffbc9a1dc14bdddd048dc97ad3075a09ffd7b6cf"
    },
    {
      "id": "zh/24_tio/12.md",
      "title": "业务数据解绑",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/12.md",
      "source": "zh/24_tio/12.md",
      "description": "业务数据解绑 在业务数据绑定的场景中，解绑是与绑定相对应的操作，用于解除 ChannelContext 与业务数据的关联关系。解绑操作非常重要，特别是在处理用户下线、会话过期等情况时。下面直接展示解绑操作的源代码： 资源解绑方法的详细说明 解绑业务 ID (unbindBsId) 解除 ChannelContext 与业务 ID 的关联。常用于业务逻辑...",
      "keywords": [],
      "status": "document",
      "sha256": "940a00d1de59b86c0d32bdddc20f1ece36666dbe49ddd1027618de243b2ea851"
    },
    {
      "id": "zh/24_tio/13.md",
      "title": "发送数据",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/13.md",
      "source": "zh/24_tio/13.md",
      "description": "发送数据 在 t-io 中，发送数据分为异步发送和同步发送两种方式。异步发送更适用于高并发和对实时性要求不高的场景，而同步发送则在需要立即确认数据发送结果时使用。 异步发送 异步发送是指业务层将 Packet 提交给 t-io 后立即返回，此时数据还没有被真正发送，而是被放入待发送队列中进行处理。异步发送的操作通常以 send 开头，适用于不需要立即知...",
      "keywords": [],
      "status": "document",
      "sha256": "75591ab8b49c06647f11a8ffc13f3e26179b11d3356bf85f8cef4c4213f505b8"
    },
    {
      "id": "zh/24_tio/14.md",
      "title": "关闭连接",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/14.md",
      "source": "zh/24_tio/14.md",
      "description": "关闭连接 断开连接 断开连接的方法以 Tio.close 开头，它用于断开当前已经建立的 TCP 连接。该方法会中止与客户端或服务器的通信。 移除连接 移除连接的方法以 Tio.remove 开头，表示彻底放弃该连接。移除连接后，t-io 将完全释放与该连接相关的资源，不再对该连接进行任何处理。 注意事项 作为 TCP 服务器： 如果 t-io 用作 ...",
      "keywords": [],
      "status": "document",
      "sha256": "f5c7f4247f94820c59c12460ea88b77487272adb7c9bc2bc07398d22942f8c4e"
    },
    {
      "id": "zh/24_tio/15.md",
      "title": "Packet",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/15.md",
      "source": "zh/24_tio/15.md",
      "description": "Packet Packet 类用于表示业务数据结构。我们通过继承 Packet 来实现自己的业务数据结构。对于大家而言，可以将 Packet 看作一个普通的 VO（Value Object）对象。 注意：不建议直接使用 Packet 类，而是应该继承它来创建自定义的 Packet。 一个简单的 Packet 可能如下： 可以结合 AioHandler ...",
      "keywords": [],
      "status": "document",
      "sha256": "f5a2f16e185ecc092aa44969f6602c0ca07ec0c6b0429498b06f56f3b27ca6e6"
    },
    {
      "id": "zh/24_tio/16.md",
      "title": "监控: 心跳",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/16.md",
      "source": "zh/24_tio/16.md",
      "description": "监控: 心跳 Tio-Boot 内置了心跳监控功能，即使是纯 HTTP 项目，也建议开启心跳监控来提高系统稳定性和实时性。 1. 设置心跳时间 首先，需要在配置文件 app.properties 中设置心跳超时时间： server.beartbeat.timeout 指定了心跳超时时间，单位为毫秒。这个值表示当服务器在规定时间内未接收到来自客户端的心跳...",
      "keywords": [],
      "status": "document",
      "sha256": "92b633b337ea035e281a95daa8d9ef0d0a60d66e7e994956b1c32315fd36632e"
    },
    {
      "id": "zh/24_tio/17.md",
      "title": "监控: 客户端的流量数据",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/17.md",
      "source": "zh/24_tio/17.md",
      "description": "监控: 客户端的流量数据 概述 本文介绍了如何使用 Tio-boot 通过 MyIpStatListener 来监控基于客户端 IP 的网络流量数据。通过这种方式，可以获取有关网络通信的详细数据，如连接请求次数、发送和接收的字节数、处理消息包的时间等。 实现步骤 IpStatDuration 定义 IP 统计时段，以 5 分钟为例： 配置 TioBoo...",
      "keywords": [],
      "status": "document",
      "sha256": "ddbb9d51e2a210ad9496495307b888c3a7e350b888f834bae626913afecc2136"
    },
    {
      "id": "zh/24_tio/18.md",
      "title": "监控: 单条 TCP 连接的流量数据",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/18.md",
      "source": "zh/24_tio/18.md",
      "description": "监控: 单条 TCP 连接的流量数据 TCP 会话的流量数据：ChannelStat 每个 TCP 会话对应一个 ChannelContext 对象，而每个 ChannelContext 对象都有一个 ChannelStat 对象，用于记录该连接的流量统计和状态信息。定义如下： ChannelStat 定义 ChannelStat 包含以下字段和方法，...",
      "keywords": [],
      "status": "document",
      "sha256": "8c8f3d2aa27e7abfa287ccec3b8beec4d2f87acc1e3a215502260b7c74e0a4f6"
    },
    {
      "id": "zh/24_tio/19.md",
      "title": "监控: 端口的流量数据",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/19.md",
      "source": "zh/24_tio/19.md",
      "description": "监控: 端口的流量数据 GroupStat 在 t-io 中，每个 TioConfig 对象都包含一个 GroupStat 成员，用于统计和监控连接组的流量数据。其定义如下： GroupStat 定义 GroupStat 包含以下字段和方法，用于统计监听端口的整体流量和性能数据（已省略简单的 getter 和 setter 方法）： 字段 closed...",
      "keywords": [],
      "status": "document",
      "sha256": "c602d4a70b6593211febec5e3e83372a5ece5b6c9a3079934e4eaa4bd97c2f38"
    },
    {
      "id": "zh/24_tio/20.md",
      "title": "单条通道统计: ChannelStat",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/20.md",
      "source": "zh/24_tio/20.md",
      "description": "单条通道统计: ChannelStat ChannelStat 是用于统计单条 TCP 通道的流量数据的类。t-io 自称拥有最强级别的流量统计和监控，这一点也绝非空谈。通过 ChannelStat，可以获取一条 TCP 通道的各种统计信息，包括流量、消息处理效率、连接状态等。 如何获取 ChannelStat 每个 ChannelContext 对象...",
      "keywords": [],
      "status": "document",
      "sha256": "0348b1fef77be16af1b1345d86a9b86c976eab5fa65fe8e549dd70f5442417bb"
    },
    {
      "id": "zh/24_tio/21.md",
      "title": "所有通道统计: GroupStat",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/21.md",
      "source": "zh/24_tio/21.md",
      "description": "所有通道统计: GroupStat GroupStat 是 ChannelStat 的集合，用于统计所有 TCP 通道的流量数据和状态。它有两个子类：ServerGroupStat 和 ClientGroupStat。当 t-io 用作 TCP 服务器时，将获取 ServerGroupStat，反之则获取 ClientGroupStat。 如何获取 G...",
      "keywords": [],
      "status": "document",
      "sha256": "da7fb85788ee1a7dafb2ebc750e6433ef131f508181ce23f6b2348ce470512fc"
    },
    {
      "id": "zh/24_tio/22.md",
      "title": "资源共享",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/22.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/22.md",
      "source": "zh/24_tio/22.md",
      "description": "资源共享 多端口资源共享 需求场景 场景 1: 端口 5555 只接受 iOS 的请求。 场景 2: 端口 6666 只接受安卓的请求。 共同点: 无论是 iOS 还是安卓，应用层协议的格式是相同的。 问题 如果一条消息需要发送给同一个群组的用户，而该群组中可能既有安卓用户也有 iOS 用户，如何高效地发送消息给所有用户？ 常规解决办法 通常的做法是先...",
      "keywords": [],
      "status": "document",
      "sha256": "f8b8548408bddc49811caa12e72d0982ceda96c6eb522e4276cdfb3cb6967040"
    },
    {
      "id": "zh/24_tio/23.md",
      "title": "成员排序",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/23.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/23.md",
      "source": "zh/24_tio/23.md",
      "description": "成员排序 内置排序 实现 Comparator 比较器 为了对 ChannelContext 对象进行排序，可以实现 Comparator 接口。以下是 ChannelContextComparator 的实现，它按照连接的创建时间和唯一标识符（ID）对 ChannelContext 进行排序： 说明 排序规则： 首先按照 ChannelContext...",
      "keywords": [],
      "status": "document",
      "sha256": "0956a7da23375b4af3aaf1c72a593234ff4b9a097b8e42631ae8b8c79f9994f8"
    },
    {
      "id": "zh/24_tio/24.md",
      "title": "SSL",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/24.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/24.md",
      "source": "zh/24_tio/24.md",
      "description": "SSL 使用 SSL（获取 SSL 证书、生成 JKS、在 t-io 中使用 SSL） 一些主流的 SSL 证书提供平台，如腾讯云和阿里云，已经提供了现成的 JKS 文件。因此，本文中描述的生成 JKS 证书的步骤可能并不适用，可以直接使用平台方提供的文件。 1. 申请 SSL 证书 SSL 证书可以通过阿里云等平台申请。当然，还有许多其他方式申请 S...",
      "keywords": [],
      "status": "document",
      "sha256": "306d658149bebbdb3cc55beed9d7b14190f902e788168b12bf0e8410cac29a95"
    },
    {
      "id": "zh/24_tio/25.md",
      "title": "DecodeRunnable",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/25.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/25.md",
      "source": "zh/24_tio/25.md",
      "description": "DecodeRunnable 概述 t-io 对数据的解码过程是在 DecodeRunnable 中完成的，每个 TCP 连接对应一个 DecodeRunnable 实例。除了正常的解码外，半包和粘包的处理也都在 DecodeRunnable 中完成。 源代码 以下是 DecodeRunnable 类的源代码： 源代码解说 半包处理 在 TioHand...",
      "keywords": [],
      "status": "document",
      "sha256": "019d7c21c99b58c7cf1f452b5822485451e7a399686abb481cf47469f36e1683"
    },
    {
      "id": "zh/24_tio/26.md",
      "title": "使用 AsynchronousSocketChannel 响应数据",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/26.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/26.md",
      "source": "zh/24_tio/26.md",
      "description": "使用 AsynchronousSocketChannel 响应数据 tio-boot 的 HTTP 响应是异步的。如果想在业务处理完发送 HTTP 响应后执行一些额外的操作，可以参考本节内容。 tio-boot 异步发送 HTTP 响应 1. 获取 ChannelContext 首先，从 HttpRequest 中获取 ChannelContext，它...",
      "keywords": [],
      "status": "document",
      "sha256": "0e5b47f482696edf6d9b22794ae2b655824dd405a48ccda9ceb760661689f42d"
    },
    {
      "id": "zh/24_tio/27.md",
      "title": "拉黑 IP",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/27.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/27.md",
      "source": "zh/24_tio/27.md",
      "description": "拉黑 IP 在某些场景下，我们可能需要拉黑某些 IP 地址，以防止其访问我们的服务器。本文将演示如何在 Tio-Boot 中通过简单的代码实现 IP 拉黑功能。 代码实现 以下是一个基于 Tio-Boot 的简单 IP 拉黑控制器的实现： 代码说明 获取真实 IP 地址: 使用 HttpIpUtils.getRealIp(request) 获取客户端的...",
      "keywords": [],
      "status": "document",
      "sha256": "dabdfa45284167276356c447a99b0d6e90bb56e6ac8e681a3d84f6bd8a2066a1"
    },
    {
      "id": "zh/24_tio/28.md",
      "title": "深入解析 Tio 源码：构建高性能 Java 网络应用",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/28.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/28.md",
      "source": "zh/24_tio/28.md",
      "description": "深入解析 Tio 源码：构建高性能 Java 网络应用 在现代网络应用中，处理大量并发连接和高效的数据传输是至关重要的。Tio（简称 t-io）作为一个基于 Java 的高性能网络通信框架，旨在简化这一过程。本文将基于提供的代码片段，深入解析 t-io 的源码结构和关键技术细节，帮助开发者更好地理解并应用这一框架。 目录 Tio 框架概述 核心配置类：...",
      "keywords": [],
      "status": "document",
      "sha256": "66a4923bbd9f4df89980c3e5be28ce5ea649cb46efc195ece16cef4a2a0a2624"
    },
    {
      "id": "zh/24_tio/29.md",
      "title": "Https建立连接过程",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/29.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/29.md",
      "source": "zh/24_tio/29.md",
      "description": "Https建立连接过程 1. DNS 解析 & 建立 TCP 连接 DNS 解析：curl 先向本地的 DNS 或者上游 DNS 服务器询问 jieti.cc 的 A/AAAA 记录。 三次握手：获得 IP（118.31.175.40）后，客户端发起 TCP SYN → 服务器回复 SYN-ACK → 客户端 ACK，至此 TCP 连接建立完毕。 2....",
      "keywords": [],
      "status": "document",
      "sha256": "cb981565f5bc520b5936b28310734f5e07c6167ee4484090ab16e19c84b96c8a"
    },
    {
      "id": "zh/24_tio/images/readme.md",
      "title": "images",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/images/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/images/readme.md",
      "source": "zh/24_tio/images/readme.md",
      "description": "images 本目录包含 5 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 01.png: 图片资源，用于本目录文档配图或界面示意。 02.jpg: 图片资源，用于本目录文档配图或界面示意。 03.png: 图片资源，用于本目录文档配图或界面示意。 04.png: 图片资源，用于本目录文...",
      "keywords": [],
      "status": "document",
      "sha256": "0a713f141d997740abdd41e7ccb1bfc910da70d6a8cc0be09d072dd3ebbd48ee"
    },
    {
      "id": "zh/24_tio/readme.md",
      "title": "24_tio",
      "language": "zh-CN",
      "chapter": "zh/24_tio",
      "url": "https://tio-boot.com/zh/24_tio/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/24_tio/readme.md",
      "source": "zh/24_tio/readme.md",
      "description": "24_tio 本目录包含 30 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《TioBootServer》。 : 文档《独立端口启动 TCP 服务器》。 : 文档《内置 TCP 处理器》。 : 文档《独立启动 UDPServer》。 : 文档《使用内置 UDPServer》。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "b995d3e4343a77075a9a4eabae5f970dc571d47ef8c8d5c1b7cb9625985544dc"
    },
    {
      "id": "zh/25_aio/01.md",
      "title": "ByteBuffer",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/01.md",
      "source": "zh/25_aio/01.md",
      "description": "ByteBuffer 简介 1. 什么是ByteBuffer ByteBuffer 是 Java NIO（New Input/Output）库中的一个类，用于处理字节数据的缓冲区。它允许开发者以更高效的方式对字节流进行读写操作。与传统的 I/O 方式相比，ByteBuffer 不仅可以让程序更灵活地控制数据的读写，还可以通过直接访问底层内存，提升操作性...",
      "keywords": [],
      "status": "document",
      "sha256": "b51906c11c6942a700d35eee8feeecd740afa091b86a71ff523f08396a5f6ba8"
    },
    {
      "id": "zh/25_aio/02.md",
      "title": "AIO HTTP 服务器",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/02.md",
      "source": "zh/25_aio/02.md",
      "description": "AIO HTTP 服务器 创建简单的 HTTP 服务器 概述 AIO（Asynchronous I/O，异步 I/O）是一种能够在处理网络请求时提升效率的方式，它能够非阻塞地处理多个请求。与传统的阻塞 I/O 不同，AIO 通过异步事件通知机制减少了线程的等待时间。在 Java 中，可以使用 AsynchronousServerSocketChanne...",
      "keywords": [],
      "status": "document",
      "sha256": "cc4beac84c1d38fec237b8174785c96409eddd67d802c2059cad67de46a48417"
    },
    {
      "id": "zh/25_aio/03.md",
      "title": "自定义和线程池和池化 ByteBuffer",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/03.md",
      "source": "zh/25_aio/03.md",
      "description": "自定义和线程池和池化 ByteBuffer 背景与问题 在使用 Java AIO（NIO.2）编程时，如果不做特殊配置，默认的 AsynchronousChannelGroup 会使用系统默认的线程池。默认情况下，线程池为会频繁的创建线程、策略单一，当面对高并发请求时，很容易成为性能瓶颈。此外，频繁为每个请求分配 ByteBuffer 对象也会在高并发...",
      "keywords": [],
      "status": "document",
      "sha256": "90e3bdab355a605293bed3c9a30a804d646652008417bfcbc423321b0d6be155"
    },
    {
      "id": "zh/25_aio/04.md",
      "title": "AioHttpServer 应用示例 IP 属地查询",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/04.md",
      "source": "zh/25_aio/04.md",
      "description": "AioHttpServer 应用示例 IP 属地查询 简介 IP 属地查询在现代网络应用中是常见的功能。通过查询用户的 IP 地址，我们可以获取其地理位置信息，用于分析用户分布、增强安全性、个性化服务等场景。为了高效处理这一任务，本示例通过 Java 编写了一个异步 I/O (AIO) HTTP 服务器，结合 ip2region 库，实现了 IP 属地...",
      "keywords": [],
      "status": "document",
      "sha256": "b18ef453de45113872d5158a13cd59846d18ec29c65fb2324bbba5c46901fcba"
    },
    {
      "id": "zh/25_aio/05.md",
      "title": "手写 AIO Http 服务器",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/05.md",
      "source": "zh/25_aio/05.md",
      "description": "手写 AIO Http 服务器 本文将介绍一个手写的 Java AIO（Asynchronous I/O）HTTP 服务器的实现。该服务器采用 Java NIO 的异步特性，实现了一个简单的 HTTP 服务器，能够处理基本的 HTTP 请求和响应。以下将详细解析代码的各个部分，帮助您理解其工作原理。 一、概述 该 HTTP 服务器的核心功能包括： 使用...",
      "keywords": [],
      "status": "document",
      "sha256": "3eff9b7ff505a94a5e4aab02ced9b012ef791540be8ea6fb5f14780797de22b5"
    },
    {
      "id": "zh/25_aio/06.md",
      "title": "Java 21 中的虚拟线程与 AIO",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/06.md",
      "source": "zh/25_aio/06.md",
      "description": "Java 21 中的虚拟线程与 AIO 引言 Java 21 引入了 虚拟线程（Virtual Threads），这是 Java 平台的一个重大更新，属于 Project Loom 项目的一部分。虚拟线程是轻量级的线程，实现了更高效的并发处理，特别是在处理大量 I/O 操作时。 在 Java 21 中，虚拟线程的引入改变了我们处理并发和 I/O 操作的...",
      "keywords": [],
      "status": "document",
      "sha256": "23ec51d333fd3f24839f1508d6dc3f33ae534781e2dbf1eda4ef31ec1fd6c5ec"
    },
    {
      "id": "zh/25_aio/images/readme.md",
      "title": "images",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/images/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/images/readme.md",
      "source": "zh/25_aio/images/readme.md",
      "description": "images 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 image-1.png: 图片资源，用于本目录文档配图或界面示意。 image-2.png: 图片资源，用于本目录文档配图或界面示意。 image-3.png: 图片资源，用于本目录文档配图或界面示意。 imag...",
      "keywords": [],
      "status": "document",
      "sha256": "cf4a9c5f1c5bb562ee54f121907b622b039bed4fe776a4f4187ebea35012a223"
    },
    {
      "id": "zh/25_aio/readme.md",
      "title": "25_aio",
      "language": "zh-CN",
      "chapter": "zh/25_aio",
      "url": "https://tio-boot.com/zh/25_aio/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/25_aio/readme.md",
      "source": "zh/25_aio/readme.md",
      "description": "25_aio 本目录包含 7 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《ByteBuffer》。 : 文档《AIO HTTP 服务器》。 : 文档《自定义和线程池和池化 ByteBuffer》。 : 文档《AioHttpServer 应用示例 IP 属地查询》。 : 文档《...",
      "keywords": [],
      "status": "document",
      "sha256": "80578e77197b14b988072d405bb291da1d2fd9b1e0b62ac1d94cd3dc1816e479"
    },
    {
      "id": "zh/26_netty/01.md",
      "title": "Netty TCP Server",
      "language": "zh-CN",
      "chapter": "zh/26_netty",
      "url": "https://tio-boot.com/zh/26_netty/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/26_netty/01.md",
      "source": "zh/26_netty/01.md",
      "description": "Netty TCP Server Introcution Netty 简介 Netty 是一个基于 Java 的网络应用框架，用于快速开发高性能、高可靠性的网络服务器和客户端。Netty 简化了网络编程，提供了异步事件驱动的网络应用程序框架，使开发人员可以专注于业务逻辑的实现，而不用处理复杂的底层网络通信细节。 Netty 的基本概念 Channel:...",
      "keywords": [],
      "status": "document",
      "sha256": "c9ed439e3cf9ad3aef3be0e4ccc1c4e5f31f6b7252bc88db5ceee9d4f131feae"
    },
    {
      "id": "zh/26_netty/02.md",
      "title": "Netty Web Socket Server",
      "language": "zh-CN",
      "chapter": "zh/26_netty",
      "url": "https://tio-boot.com/zh/26_netty/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/26_netty/02.md",
      "source": "zh/26_netty/02.md",
      "description": "Netty Web Socket Server WebSocket 的优势 在多次交互场景下，WebSocket 通过以下几种方式显著提升了性能，相比于传统的 HTTP 协议更加适合实时应用场景： 持久连接: HTTP: 每次请求都需要重新建立和关闭 TCP 连接，这在高频次请求场景下增加了延迟和资源开销。 WebSocket: 连接一旦建立后会保持持...",
      "keywords": [],
      "status": "document",
      "sha256": "5367cf0f78fbf211f9e079e2b9830e7d99a03712d5e93711177fc55bf2afcddd"
    },
    {
      "id": "zh/26_netty/03.md",
      "title": "使用 protoc 生成 Java 包文件",
      "language": "zh-CN",
      "chapter": "zh/26_netty",
      "url": "https://tio-boot.com/zh/26_netty/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/26_netty/03.md",
      "source": "zh/26_netty/03.md",
      "description": "使用 protoc 生成 Java 包文件 protoc 简介 protoc 是 Protocol Buffers 编译器，用于将 .proto 文件转换为目标语言的代码。在您的项目中，protoc 主要用于定义和规范消息体格式，确保消息在不同系统之间的一致性。protoc 是 Protocol Buffers（简称 Protobuf）的核心工具，通过...",
      "keywords": [],
      "status": "document",
      "sha256": "40d905a78bff249f31f151cd9d61db98ef3be2fa21bd3182c8719b3fedf2c02c"
    },
    {
      "id": "zh/26_netty/04.md",
      "title": "Netty WebSocket Server 二进制数据传输",
      "language": "zh-CN",
      "chapter": "zh/26_netty",
      "url": "https://tio-boot.com/zh/26_netty/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/26_netty/04.md",
      "source": "zh/26_netty/04.md",
      "description": "Netty WebSocket Server 二进制数据传输 简介 在之前的章节中，我们已经完成了以下两部分操作： 编写了一个 WebSocket 服务器并实现了聊天服务功能。 使用 protoc 工具生成了 Java 的协议缓冲区（Protobuf）文件。 然而，目前客户端和服务器之间传输的数据是以 JSON 格式进行的。本章将介绍如何在客户端和服务...",
      "keywords": [],
      "status": "document",
      "sha256": "16fd8f89c53ca755276669b70936a58cb67346a4449b326cb9bd3ccb94ce1e08"
    },
    {
      "id": "zh/26_netty/05.md",
      "title": "Netty 组件详解",
      "language": "zh-CN",
      "chapter": "zh/26_netty",
      "url": "https://tio-boot.com/zh/26_netty/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/26_netty/05.md",
      "source": "zh/26_netty/05.md",
      "description": "Netty 组件详解 ChannelFuture 在 Netty 中，ChannelFuture 是由 Channel 提供的。具体来说，ChannelFuture 是在执行与 I/O 操作相关的方法时返回的。例如，当调用 Channel 的 write() 方法或 connect() 方法时，这些方法会返回一个 ChannelFuture 对象，用于...",
      "keywords": [],
      "status": "document",
      "sha256": "126ec42b6bbaad80ab79f4ef3f8883c4e3d7b7cc85cdfd90c764e0c1b287d346"
    },
    {
      "id": "zh/26_netty/readme.md",
      "title": "26_netty",
      "language": "zh-CN",
      "chapter": "zh/26_netty",
      "url": "https://tio-boot.com/zh/26_netty/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/26_netty/readme.md",
      "source": "zh/26_netty/readme.md",
      "description": "26_netty 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Netty TCP Server》。 : 文档《Netty Web Socket Server》。 : 文档《使用 protoc 生成 Java 包文件》。 : 文档《Netty WebSocket...",
      "keywords": [],
      "status": "document",
      "sha256": "9925af1c14fadad7a861cefe4b52ad3590426f5c5932cb489fccc69885239fdc"
    },
    {
      "id": "zh/27_netty-boot/01.md",
      "title": "Netty-Boot",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/01.md",
      "source": "zh/27_netty-boot/01.md",
      "description": "Netty-Boot 简介 Netty-Boot 是一个基于 Netty 的轻量级 Web 中间件框架，专为高性能 Web 应用开发而设计。它充分利用了 Netty 的高效 IO 模型，支持快速开发高并发的 Web 服务。该框架整合了多种常见的中间件，包括 PostgreSQL、Redis、MongoDB、Elasticsearch、消息队列（MQ）、...",
      "keywords": [],
      "status": "document",
      "sha256": "4ca89272e7ebe77ce8d25062c7001ae52961da22e1c0748eb6672d31f9d4cf4c"
    },
    {
      "id": "zh/27_netty-boot/02.md",
      "title": "原理解析",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/02.md",
      "source": "zh/27_netty-boot/02.md",
      "description": "原理解析 深入解析 Netty 的请求处理过程 在使用 Netty 构建高性能网络应用时，理解其内部的请求处理流程对于调试和优化非常关键。本文将通过一个异常堆栈信息，详细讲解 Netty 的请求处理过程，帮助开发者深入了解 Netty 的内部机制。 异常堆栈信息 以下是一次请求处理过程中捕获的异常堆栈信息： Netty 请求处理流程解析 Netty 的...",
      "keywords": [],
      "status": "document",
      "sha256": "945e4f1675245f8db36bad3be5cc2596f6d8d05cc8eee8d90bd72d26bf22a0a9"
    },
    {
      "id": "zh/27_netty-boot/03.md",
      "title": "整合 Hot Reload",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/03.md",
      "source": "zh/27_netty-boot/03.md",
      "description": "整合 Hot Reload Netty-Boot 整合 Hotswap-ClassLoader 实现热加载 简介 在开发过程中，为了提高开发效率，通常会需要实时修改代码后立即生效，而无需重启整个应用程序。hotswap-classloader 提供了一个高效的解决方案，能够在不重启 JVM 的情况下，实现类的动态替换。本文将介绍如何将 hotswap-...",
      "keywords": [],
      "status": "document",
      "sha256": "f46b385fbeba743552c5114c4aa296d76e77a7a67a55b7bab1cfffb72ab15cfb"
    },
    {
      "id": "zh/27_netty-boot/04.md",
      "title": "整合 数据库",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/04.md",
      "source": "zh/27_netty-boot/04.md",
      "description": "整合 数据库 在 Netty-Boot 项目中，推荐使用 java-db 来进行数据库连接，它为开发者提供了简便的方式来操作数据库，支持多种数据库方言，并结合了 HikariCP 作为数据库连接池，确保高效的数据库连接管理。本文将展示如何配置 java-db 来连接 PostgreSQL 数据库，并进行简单的查询操作。 数据库连接原理 数据库连接在 J...",
      "keywords": [],
      "status": "document",
      "sha256": "c720f3d4817058051a3ac1a530124613f31e9c28fbfa581b8ff16a27fe2932be"
    },
    {
      "id": "zh/27_netty-boot/05.md",
      "title": "整合 Redis",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/05.md",
      "source": "zh/27_netty-boot/05.md",
      "description": "整合 Redis 在 Netty-Boot 项目中，通过 java-db 和 jedis 可以快速、高效地连接和操作 Redis 数据库。Redis 作为一个高性能的键值对存储系统，能够支持多种数据结构，同时具备高可扩展性和极快的响应速度。本文将展示如何在 Netty-Boot 中配置和使用 Redis，并对其工作原理进行详细解析。 Redis 连接原...",
      "keywords": [],
      "status": "document",
      "sha256": "b9331ad478e10c41dc280a399262cf89c508736ddc76b236151add9021c7aa47"
    },
    {
      "id": "zh/27_netty-boot/06.md",
      "title": "整合 Elasticsearch",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/06.md",
      "source": "zh/27_netty-boot/06.md",
      "description": "整合 Elasticsearch 在 Netty-Boot 项目中，推荐使用 java-db 连接 Elasticsearch，这能够简化与 Elasticsearch 的交互。Elasticsearch 是一个分布式搜索和分析引擎，广泛用于全文搜索、日志分析等场景。通过整合 java-db 和 elasticsearch-rest-high-leve...",
      "keywords": [],
      "status": "document",
      "sha256": "17e1688c2c5bd161def439794b8ba062238c5159a96912b9ebc85e12079b6da7"
    },
    {
      "id": "zh/27_netty-boot/07.md",
      "title": "整合 Dubbo",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/07.md",
      "source": "zh/27_netty-boot/07.md",
      "description": "整合 Dubbo 推荐使用 jfinal-aop 对 dubbo 的支持整合 dubbo 提供者 消费者",
      "keywords": [],
      "status": "placeholder",
      "sha256": "8f6abde7ab7fba61019f67bda14801710acdc89ff0c6de66107fbe9c6fa25525"
    },
    {
      "id": "zh/27_netty-boot/08.md",
      "title": "Listener",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/08.md",
      "source": "zh/27_netty-boot/08.md",
      "description": "Listener Netty-Boot 自定义 ChannelConnectionListener 在基于 Netty 的应用程序中，监听客户端的连接和断开是非常重要的需求。Netty-Boot 提供了 ChannelConnectionListener 接口，开发者可以通过实现该接口，自定义处理客户端的连接和断开事件。本文将介绍如何在 Netty-B...",
      "keywords": [],
      "status": "document",
      "sha256": "01f8cbadcb881f5aac3f6a30839cb420e2a3ab265837e0ded9af0a7bfe0470ef"
    },
    {
      "id": "zh/27_netty-boot/09.md",
      "title": "文件上传",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/09.md",
      "source": "zh/27_netty-boot/09.md",
      "description": "文件上传 Netty-Boot 文件上传处理 在 Netty-Boot 项目中，文件上传是一个常见的需求。Netty 提供了强大的 HTTP 处理能力，可以通过 multipart/form-data 实现文件上传。本文将介绍如何通过 Netty-Boot 处理文件上传，并解析其工作原理。 文件上传原理 HTTP POST 和 multipart/fo...",
      "keywords": [],
      "status": "document",
      "sha256": "65c37f4ef14f58ec7950575e2011442b6ab317bb0baa532af331a1058a3c5bc9"
    },
    {
      "id": "zh/27_netty-boot/10.md",
      "title": "拦截器",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/10.md",
      "source": "zh/27_netty-boot/10.md",
      "description": "拦截器 在基于 Netty-Boot 的应用中，拦截器是非常重要的功能，它可以在请求到达业务处理器之前或请求完成后进行预处理或后处理。通过使用拦截器，开发者可以实现全局过滤、认证、日志记录等功能。本文将介绍如何在 Netty-Boot 中配置和使用拦截器。 拦截器原理 拦截器的作用是对请求进行预处理或后处理，类似于过滤器的功能。拦截器通常有以下几个步骤...",
      "keywords": [],
      "status": "document",
      "sha256": "05879e378f46023be166e207c42795089f63441730918c62521940d946353b3b"
    },
    {
      "id": "zh/27_netty-boot/11.md",
      "title": "Spring Boot 整合 Netty-Boot",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/11.md",
      "source": "zh/27_netty-boot/11.md",
      "description": "Spring Boot 整合 Netty-Boot 本指南将演示如何在 Spring Boot 应用程序中集成 Netty-Boot，使您能够在 Spring Boot 的上下文中使用 Netty 来处理 HTTP 和 WebSocket 请求。 前提条件 JDK 版本：8 或更高 构建工具：Maven 或 Gradle 知识准备：具备 Spring ...",
      "keywords": [],
      "status": "document",
      "sha256": "1681efe17bac88e3a6c080cb2a6d7cecdb325f22a57dc9e122178773f64678c6"
    },
    {
      "id": "zh/27_netty-boot/12.md",
      "title": "SSL 配置指南",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/12.md",
      "source": "zh/27_netty-boot/12.md",
      "description": "SSL 配置指南 Netty-Boot 内置了对 HTTPS 的支持，以下将详细介绍如何配置和使用 SSL 以确保您的 Web 应用的安全性。 使用内置自签名证书 Netty-Boot 提供了内置的自签名证书，适用于开发和测试环境。通过以下配置，您可以快速启用 HTTPS 支持。 配置文件 在 app.properties 文件中添加以下配置： 启动项...",
      "keywords": [],
      "status": "document",
      "sha256": "9a467d92c6371ee7aab3b8035f2e87d2975e81026d375e9317ad9dd7200266a6"
    },
    {
      "id": "zh/27_netty-boot/13.md",
      "title": "ChannelInitializer",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/13.md",
      "source": "zh/27_netty-boot/13.md",
      "description": "ChannelInitializer 自定义 ChannelInitializer Netty-Boot 提供了灵活的扩展机制，允许开发者根据具体需求自定义 ChannelInitializer，以定制 Netty 的管道（Pipeline）配置。通过自定义 ChannelInitializer，您可以添加或修改处理器（Handlers），实现特定的业...",
      "keywords": [],
      "status": "document",
      "sha256": "a8f3f7d76647c8cfd94a7c4dcdf3f1c1ef3113b61dac29f51caea9d1fa8e82bc"
    },
    {
      "id": "zh/27_netty-boot/14.md",
      "title": "Reserve",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/14.md",
      "source": "zh/27_netty-boot/14.md",
      "description": "Reserve",
      "keywords": [],
      "status": "placeholder",
      "sha256": "6db42f0a1066005ebc923b35e3c4fbfcccc4fcdf09e882c466842bda8386ee5a"
    },
    {
      "id": "zh/27_netty-boot/readme.md",
      "title": "27_netty-boot",
      "language": "zh-CN",
      "chapter": "zh/27_netty-boot",
      "url": "https://tio-boot.com/zh/27_netty-boot/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/27_netty-boot/readme.md",
      "source": "zh/27_netty-boot/readme.md",
      "description": "27_netty-boot 本目录包含 15 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Netty-Boot》。 : 文档《原理解析》。 : 文档《整合 Hot Reload》。 : 文档《整合 数据库》。 : 文档《整合 Redis》。 : 文档《整合 Elasticse...",
      "keywords": [],
      "status": "document",
      "sha256": "8fc46de8339f8b70c7ce8f57134daa1eb2ea322e3e6ac81faf5ffc1413be81fb"
    },
    {
      "id": "zh/28_tio-utils/01.md",
      "title": "tio-utils",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/01.md",
      "source": "zh/28_tio-utils/01.md",
      "description": "tio-utils tio-utils 是 tio-boot 的内置工具类库 无默认任何第三方依赖 自带 JsonUtils,实现了实体类转为 Json 字符串 如果需要将 Json 字符串转为实体类,请添加 fastjson2 gradle",
      "keywords": [],
      "status": "document",
      "sha256": "d6b8a362075947fc84fb011c6f8ab3c289b4d40ff6710591c6f01f371d91cfba"
    },
    {
      "id": "zh/28_tio-utils/02.md",
      "title": "EnvUtils 配置工具",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/02.md",
      "source": "zh/28_tio-utils/02.md",
      "description": "EnvUtils 配置工具 EnvUtils 是 tio-utils 提供的统一配置管理工具，用于在应用运行时，从多个配置来源中获取配置值，并按照固定优先级进行解析与覆盖。 它解决的核心问题是： 配置来源分散（参数、环境变量、配置文件） 多环境配置切换复杂 本地个性化配置容易污染团队环境 EnvUtils 通过一套明确的加载规则和优先级模型，统一了这些...",
      "keywords": [],
      "status": "document",
      "sha256": "9ab1d3659e338a59094c5f5ac691fe4c4235dcc52686ebb1b25430513e992eed"
    },
    {
      "id": "zh/28_tio-utils/03.md",
      "title": "Notification",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/03.md",
      "source": "zh/28_tio-utils/03.md",
      "description": "Notification 1. 概述 tio-boot 内置了消息通知组件,用户发送消息到 微信企业群 飞书企业群 等等 本文档提供了一个通知组件的使用指南，介绍通过不同的方式发送通知，比如发送文本消息或者发送预警信息。它支持自定义通知方式，用户可以通过实现特定的接口来集成不同的通知服务。 添加依赖 Notification 依赖 okhttp 发送数...",
      "keywords": [],
      "status": "document",
      "sha256": "d0804c1af8dfb2ad03740b2c9e2a5d2accf031c7cba0b2f8ceaf2fe9b4efbe59"
    },
    {
      "id": "zh/28_tio-utils/04.md",
      "title": "Email",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/04.md",
      "source": "zh/28_tio-utils/04.md",
      "description": "Email tio-utils 内置了邮箱工具类 nexus.io.tio.utils.email.EMailUtils 用于支持发送邮件 添加依赖 or 这两个依赖的区别在于它们所依赖的不同版本的 Java 邮件库，以及这些版本可能带来的改动或增强。具体如下： 1. javax.mail:mail:1.5.0-b01 这是 Java 邮件 API (...",
      "keywords": [],
      "status": "document",
      "sha256": "c4169f984dcac493250b8926295ef6e45986195aa8bd2c1215ab96dfa3b4ea17"
    },
    {
      "id": "zh/28_tio-utils/05.md",
      "title": "JSON",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/05.md",
      "source": "zh/28_tio-utils/05.md",
      "description": "JSON tio-utils 的 json 模块以抽象类 Json 为核心，方便扩展第三方实现，tio 官方给出了三个 Json 实现，分别是 TioJson、FastJson2、Jackson，这三个实现继承自抽象类 Json。 抽象类 Json 的核心抽象如下： 如上代码可以看出 Json 抽象就是 Object 与 json string 互转的...",
      "keywords": [],
      "status": "document",
      "sha256": "a56520f23b5e1bdff0f4c3d1fbc859501d8f02d06db2a939f168e71ad1efbf98"
    },
    {
      "id": "zh/28_tio-utils/06.md",
      "title": "File",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/06.md",
      "source": "zh/28_tio-utils/06.md",
      "description": "File ResourceUtil 和 BufferedReader 读取 classpath 下的文本文件 读取文件示例 代码示例 读取为List<String> lines 代码示例 读取文件内容为字符串 如果感觉上面的方法繁琐,可以使用下面的代码 代码示例 读取文件内容为字节数组",
      "keywords": [],
      "status": "document",
      "sha256": "ac60ef5cbf966e3e3c7493da2f9bdbc9fffb852456c100f1a2a073cd0335f4bc"
    },
    {
      "id": "zh/28_tio-utils/07.md",
      "title": "Base64",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/07.md",
      "source": "zh/28_tio-utils/07.md",
      "description": "Base64 tio-utils 内置了 base64 编码和解码工具类,示例代码如下",
      "keywords": [],
      "status": "document",
      "sha256": "29f000bdd670e529b0ccce8a5e6616fc185101457ec3f6ff79142a67ec2d04f5"
    },
    {
      "id": "zh/28_tio-utils/08.md",
      "title": "上传和下载",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/08.md",
      "source": "zh/28_tio-utils/08.md",
      "description": "上传和下载 使用 HttpDownloadUtils 下载文件 HttpDownloadUtils 是一个用于从远程服务器下载文件的实用工具类。下面是一个示例代码，以及详细解释如何使用 HttpDownloadUtils 来下载文件。 示例代码 方法解析 参数 remoteURL: 远程文件的 URL 地址。该参数是一个字符串，指定了要下载文件的完整 ...",
      "keywords": [],
      "status": "document",
      "sha256": "9dd08b30046aa0bf1399ebc841981505a9409e70590a7e96aac715f264fbbbb5"
    },
    {
      "id": "zh/28_tio-utils/09.md",
      "title": "Http",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/09.md",
      "source": "zh/28_tio-utils/09.md",
      "description": "Http 类简介 Http 类是一个用于简化 HTTP 请求操作的工具类，提供了发送 GET 和 POST 请求的便捷方法。它支持发送 JSON 数据、表单数据，并允许自定义请求头。 公共方法 1. postJson(String serverUrl, String payload) 描述： 发送一个带有 JSON 数据的 POST 请求。 参数： s...",
      "keywords": [],
      "status": "document",
      "sha256": "c3c2070c88388095d54a0c9bbc2cc5334a7d28151f3f15489fe1bc26d6c13630"
    },
    {
      "id": "zh/28_tio-utils/10.md",
      "title": "Telegram",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/10.md",
      "source": "zh/28_tio-utils/10.md",
      "description": "Telegram 简介 tio-utils 内置了 Telegram 工具类，允许用户方便地将消息发送到 Telegram 群组。本文档将详细介绍如何创建 Telegram Bot、获取群组 Chat ID、使用 Java 代码发送消息，以及将其集成到 Tio-Boot 项目中。此外，还将介绍如何使用 tio-utils 内置的 TelegramBot...",
      "keywords": [],
      "status": "document",
      "sha256": "26ca37d29dd403dcbfab90abac80b04aa38d033c348f944c40abd1dc3a0b0db9"
    },
    {
      "id": "zh/28_tio-utils/11.md",
      "title": "RsaUtils",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/11.md",
      "source": "zh/28_tio-utils/11.md",
      "description": "RsaUtils 加密和解密操作 生成密钥对 以下示例展示了如何使用 RsaUtils 生成 RSA 公钥和私钥，并将其编码为 Base64 字符串。 示例输出: 加密和解密消息 以下示例展示了如何使用生成的 RSA 公钥加密消息，并使用私钥解密。 示例输出: 将私钥和公钥存入数据库 为了安全地存储 RSA 密钥对，我们将私钥和公钥存入数据库中的 sy...",
      "keywords": [],
      "status": "document",
      "sha256": "f6c35e68f3a6440c4575679c9052f06875260229a282e41a5b9b169efefacfe5"
    },
    {
      "id": "zh/28_tio-utils/12.md",
      "title": "HttpUtils",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/12.md",
      "source": "zh/28_tio-utils/12.md",
      "description": "HttpUtils 添加依赖 nexus.io.tio.utils.http.HttpUtils 是对 okhttp 的二次封装,使用前请添加 okhttp 依赖 HttpUtils 是一个使用 OkHttpClient 处理 HTTP 请求和响应的 Java 工具类。该类提供了一组静态方法，方便进行 GET 和 POST 请求，并处理请求头和请求体。...",
      "keywords": [],
      "status": "document",
      "sha256": "864d4dcf8b6aab4de9c0490967175646dafbc96f11c963297e301021779f531b"
    },
    {
      "id": "zh/28_tio-utils/13.md",
      "title": "ByteBufferUtils",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/13.md",
      "source": "zh/28_tio-utils/13.md",
      "description": "ByteBufferUtils 这是一个专为 java.nio.ByteBuffer 设计的工具类，旨在简化和扩展 ByteBuffer 的常用操作。ByteBuffer 是 Java NIO 的核心组件，用于高效的 I/O 操作，但其原生 API 在某些场景下使用起来较为繁琐，例如处理特定格式的数据（如按行读取）、复制、拆分等。ByteBufferU...",
      "keywords": [],
      "status": "document",
      "sha256": "1471414b17cbc1ec997b8802b02bd8855047e7beb806ed0772ce7fe9caea0e6d"
    },
    {
      "id": "zh/28_tio-utils/19.md",
      "title": "系统监控",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/19.md",
      "source": "zh/28_tio-utils/19.md",
      "description": "系统监控 本指南将介绍如何使用 tio-utils 中的 SystemMonitorUtils 获取系统信息，以及如何将监控数据记录到数据库中。 一、使用 SystemMonitorUtils 获取系统信息 tio-utils 提供了 SystemMonitorUtils 类，方便用户获取系统的各种信息。以下是使用方法： 执行上述代码后，您将获得一个 ...",
      "keywords": [],
      "status": "document",
      "sha256": "f1c85f4e23eb35df12d9ecf020e1c559d62d25789b6730d8eda00c00b61ae495"
    },
    {
      "id": "zh/28_tio-utils/20.md",
      "title": "线程",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/20.md",
      "source": "zh/28_tio-utils/20.md",
      "description": "线程 一、概述 TioThreadUtils 是一个基于 java.util.concurrent.ExecutorService 封装的线程池工具类，用于在项目中统一管理和使用线程池资源。 它提供了： 全局唯一的固定大小线程池 统一的线程命名规则 简化的任务提交与执行方法 线程池的启动、停止与重启能力 适用于异步任务执行、并发处理、后台任务等场景。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "26021d13e450c99362ea51a72dac6a8ba75795ef49ec44525fbe437f48c56c5b"
    },
    {
      "id": "zh/28_tio-utils/21.md",
      "title": "虚拟线程",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/21.md",
      "source": "zh/28_tio-utils/21.md",
      "description": "虚拟线程 使用虚拟线程并发执行数学与安全判定 本文介绍如何在 ApiMathController#determine 接口中，使用 MvThreadUtils（基于虚拟线程）并发执行两个独立的判定逻辑：determineTextMath 与 determineTextSafe。目标是在保持原有“判定顺序与返回语义不变”的前提下，减少总体等待时间。 背景...",
      "keywords": [],
      "status": "document",
      "sha256": "2f661c475facfbf312195f3f4f0f968b78ec14470da8c2baa65869f7096b532c"
    },
    {
      "id": "zh/28_tio-utils/30.md",
      "title": "毫秒并发 ID (MCID) 生成方案",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/30.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/30.md",
      "source": "zh/28_tio-utils/30.md",
      "description": "毫秒并发 ID (MCID) 生成方案 1. 引言 在数字时代，唯一标识符的生成对于维护数据完整性、支持分布式系统以及确保准确的事务处理至关重要。毫秒并发 ID (MCID) 生成方案是一种高精度、可扩展的解决方案，旨在为需要毫秒级精度和高并发支持的实时系统生成唯一标识符。本文件概述了 MCID 方案的设计、实现及标准化建议，并特别强调了其对前端浏览器...",
      "keywords": [],
      "status": "document",
      "sha256": "e45d6e2783e9b7be9b217ee131cb150435fc196ebbcaa95f9388c58cc25b6226"
    },
    {
      "id": "zh/28_tio-utils/readme.md",
      "title": "28_tio-utils",
      "language": "zh-CN",
      "chapter": "zh/28_tio-utils",
      "url": "https://tio-boot.com/zh/28_tio-utils/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/28_tio-utils/readme.md",
      "source": "zh/28_tio-utils/readme.md",
      "description": "28_tio-utils 本目录包含 18 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-utils》。 : 文档《EnvUtils 配置工具》。 : 文档《Notification》。 : 文档《Email》。 : 文档《JSON》。 : 文档《File》。 : 文档...",
      "keywords": [],
      "status": "document",
      "sha256": "1d680cc45f76f091e30842542c1cc77404f9e6e93a86970844f05055adfd13c9"
    },
    {
      "id": "zh/29_tio-http-server/01.md",
      "title": "使用 Tio-Http-Server 搭建简单的 HTTP 服务",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/01.md",
      "source": "zh/29_tio-http-server/01.md",
      "description": "使用 Tio-Http-Server 搭建简单的 HTTP 服务 如果的项目无需 WebSocket 功能，且对性能有较高要求，那么可以考虑使用 tio-http-server 作为 HTTP 服务的基础。tio-http-server 是一款高性能的 Java HTTP 服务框架，专为满足低延迟、高并发场景而设计。本文将介绍如何使用 tio-http...",
      "keywords": [],
      "status": "document",
      "sha256": "dddd787c7ff380d8839a95ea258b39bdf1da8234509983aa7894e2cfdb10e572"
    },
    {
      "id": "zh/29_tio-http-server/02.md",
      "title": "tio-boot 添加 HttpRequestHandler",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/02.md",
      "source": "zh/29_tio-http-server/02.md",
      "description": "tio-boot 添加 HttpRequestHandler tio-boot 支持的两种组件最 http 请求进行处理 handler controller 注意 1.handler 的优先级高于 controller 2.handler 不支持参数封装,只能接受形参 HttpRequest,返回 HttpResponse 3.handler 在性能...",
      "keywords": [],
      "status": "document",
      "sha256": "bf10e0cb810aa0fe46f87054e635a628d4c42e65b530f8d0eb390a7facfa0bf9"
    },
    {
      "id": "zh/29_tio-http-server/03.md",
      "title": "在 Android 上使用 tio-boot 运行 HTTP 服务",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/03.md",
      "source": "zh/29_tio-http-server/03.md",
      "description": "在 Android 上使用 tio-boot 运行 HTTP 服务 本文档详细介绍了如何在 Android 设备上使用 tio-boot 框架运行轻量级 HTTP 服务。tio-boot 基于 TIO 通信协议，实现了高性能、易用的 HTTP 服务能力，非常适合嵌入式或移动端场景。以下各步将带从环境准备，到代码编写，再到最终测试，一气呵成地完成部署。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "a8a0e83971069891ef8af00c109fbb2a18ca4ca4492a4485e0c1654e3d48d069"
    },
    {
      "id": "zh/29_tio-http-server/04.md",
      "title": "tio-http-server-native",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/04.md",
      "source": "zh/29_tio-http-server/04.md",
      "description": "tio-http-server-native 将基于 tio-http-server 的 jar 编译成二进制文件运行 pom.xml 启动类 实体类 Controller maven and jdk 打包成二进制文件 打包过程中执使用的 native-image 命令如下 编译成功,编译过重中日志如下 测试启动成功 访问测试接口 http://loc...",
      "keywords": [],
      "status": "document",
      "sha256": "62414dbfb68f7fc039d8a32cf4c614fa9e5dca9b33f6414a6658dd2c85d705e7"
    },
    {
      "id": "zh/29_tio-http-server/05.md",
      "title": "handler 常用操作",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/05.md",
      "source": "zh/29_tio-http-server/05.md",
      "description": "handler 常用操作 文件 接受文件上传 为什么使用 handler 上传文件 handler 的性能高于 controller 上传示例",
      "keywords": [],
      "status": "document",
      "sha256": "6214cbd1810a5e1af1883a5771dc8139f9deb3ff13c7ba99ae7712c9027db436"
    },
    {
      "id": "zh/29_tio-http-server/06.md",
      "title": "tio-http-server 与 tio-boot 的使用边界",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/06.md",
      "source": "zh/29_tio-http-server/06.md",
      "description": "tio-http-server 与 tio-boot 的使用边界 tio-http-server 提供 HTTP 服务与 Handler 等底层能力；tio-boot 在其上提供应用启动、配置、Controller、拦截器和扩展集成。两者文档中的启动方式不能直接混合。 如何选择 已有 tio-boot 服务时，通过其 TioBootServer 路由器...",
      "keywords": [],
      "status": "document",
      "sha256": "05c259391dc156f1411c4b0a24a0b890698e7dd27226de3e4c8aca1bfb6e1425"
    },
    {
      "id": "zh/29_tio-http-server/readme.md",
      "title": "29_tio-http-server",
      "language": "zh-CN",
      "chapter": "zh/29_tio-http-server",
      "url": "https://tio-boot.com/zh/29_tio-http-server/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/29_tio-http-server/readme.md",
      "source": "zh/29_tio-http-server/readme.md",
      "description": "29_tio-http-server 本目录包含 7 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用 Tio-Http-Server 搭建简单的 HTTP 服务》。 : 文档《tio-boot 添加 HttpRequestHandler》。 : 文档《在 Android 上...",
      "keywords": [],
      "status": "document",
      "sha256": "a2f23f614cf976b310b9707f00c3bd23f469610d7d0c7c15c9972766fc47b4bb"
    },
    {
      "id": "zh/30_tio-websocket/01.md",
      "title": "WebSocket 服务器",
      "language": "zh-CN",
      "chapter": "zh/30_tio-websocket",
      "url": "https://tio-boot.com/zh/30_tio-websocket/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/30_tio-websocket/01.md",
      "source": "zh/30_tio-websocket/01.md",
      "description": "WebSocket 服务器 tio-boot 内置了 tio-websocket 组件，推荐使用 tio-boot 创建 WebSocket 服务器。如果您对 WebSocket 场景有特殊的要求，可以参考下面的代码启动一个独立的 WebSocket 服务器。 添加依赖 在项目的 pom.xml 中添加以下依赖： 定义常量 创建一个 Const 类，用...",
      "keywords": [],
      "status": "document",
      "sha256": "b29ba39fe830d579a4f36d8803bfe20f442f6c3eca302e3f70e4b234c0db5a45"
    },
    {
      "id": "zh/30_tio-websocket/02.md",
      "title": "WebSocket Client",
      "language": "zh-CN",
      "chapter": "zh/30_tio-websocket",
      "url": "https://tio-boot.com/zh/30_tio-websocket/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/30_tio-websocket/02.md",
      "source": "zh/30_tio-websocket/02.md",
      "description": "WebSocket Client WebSocket Client 并不是 tio-boot 的内置组件 1. 依赖添加 首先，您需要在项目的pom.xml文件中添加以下依赖，以使用tio-websocket-client库。 这个依赖是 WebSocket 客户端的核心，提供了建立连接、发送和接收消息等功能。 2. WebSocket 客户端测试 主...",
      "keywords": [],
      "status": "document",
      "sha256": "bcafdaa74314424828b635d7ef59fbefa071d893040a5f33d701e7130c95c577"
    },
    {
      "id": "zh/30_tio-websocket/03.md",
      "title": "TCP数据转发",
      "language": "zh-CN",
      "chapter": "zh/30_tio-websocket",
      "url": "https://tio-boot.com/zh/30_tio-websocket/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/30_tio-websocket/03.md",
      "source": "zh/30_tio-websocket/03.md",
      "description": "TCP数据转发 1.tio‑websockify 消息转发服务文档 1、项目简介 tio-websockify 是一个基于 T‑io 框架的 WebSocket → TCP 转发代理，旨在将来自浏览器的 WebSocket 帧实时转发到后端 TCP 服务（如 VNC Server），并将后端返回的二进制数据封装成 WebSocket 帧回传给前端。 核...",
      "keywords": [],
      "status": "document",
      "sha256": "a99b2df128bb80aa3d9a666e6286a01a577f0d8c1ec88ca1c80fb4b2f9487173"
    },
    {
      "id": "zh/30_tio-websocket/readme.md",
      "title": "30_tio-websocket",
      "language": "zh-CN",
      "chapter": "zh/30_tio-websocket",
      "url": "https://tio-boot.com/zh/30_tio-websocket/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/30_tio-websocket/readme.md",
      "source": "zh/30_tio-websocket/readme.md",
      "description": "30_tio-websocket 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《WebSocket 服务器》。 : 文档《WebSocket Client》。 : 文档《TCP数据转发》。",
      "keywords": [],
      "status": "document",
      "sha256": "4a3f3c72768c077f2e926d820ac5647e67ec078c4148d5e17a4b11813cc0cade"
    },
    {
      "id": "zh/31_tio-im/01.md",
      "title": "通讯协议文档",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/01.md",
      "source": "zh/31_tio-im/01.md",
      "description": "通讯协议文档 本通讯协议旨在为即时通讯系统提供一套全面、可靠的消息传输标准。协议支持多种登录方式、消息类型及群聊功能，并包含完善的鉴权与消息重发机制，确保消息的安全与可靠传递。 功能概述 本通讯协议支持以下功能： 确认（ACK）、重发、消息序列 管理。 匿名登录、用户名密码登录 和 Token 登录。 支持发送多种类型的消息：文本（Text）、图片（I...",
      "keywords": [],
      "status": "document",
      "sha256": "ba9b1ee4db61cc5a01b40bbb5722cf8510d438967cca185b5dba7c2d49161fa4"
    },
    {
      "id": "zh/31_tio-im/02.md",
      "title": "ChatPacket.proto 文档",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/02.md",
      "source": "zh/31_tio-im/02.md",
      "description": "ChatPacket.proto 文档 本文档详细描述了即时通讯系统中使用的 ChatPacket.proto 文件，该文件基于 Protocol Buffers（protobuf）定义了通讯协议中的各类消息结构和命令类型。本文档不仅对原始的 .proto 文件进行了润色和格式优化，还根据前述通讯协议的内容修复了其中的错误，确保协议的一致性和完整性。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "95c6bc0193c513b5e27456bd1e66a0d987bd44d86f56cb8b66e806a5bdfb0daf"
    },
    {
      "id": "zh/31_tio-im/03.md",
      "title": "java protobuf",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/03.md",
      "source": "zh/31_tio-im/03.md",
      "description": "java protobuf 生成代码 解析二进制数据 使用 ChatPacket 生成和解析二进制数据的两个实例 下面是两个实例，展示如何使用 ChatPacket 类生成二进制数据并将其解析回 ChatPacket 对象。可以将这些实例直接应用到的 Java 项目中。 实例 1：生成二进制数据 在这个实例中，我们将创建一个 ChatPacket 对象...",
      "keywords": [],
      "status": "document",
      "sha256": "6921313ba3e075c2c0ccdcf2f4ce8f3e8dff15fd6ce34b50b936ba63bdcddcc0"
    },
    {
      "id": "zh/31_tio-im/04.md",
      "title": "数据表设计",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/04.md",
      "source": "zh/31_tio-im/04.md",
      "description": "数据表设计 1. im_users 用户表 2. im_messages_history 表 此表用于存储用户之间和群组之间交换的所有消息的历史记录，支持各种消息类型，并包含消息确认和序列化所需的字段。 表结构 字段描述 id: 每条消息的唯一标识符。 cmd: 表示消息类型的命令代码。 sequence: 用于跟踪和确认的唯一消息序列号。 ack: ...",
      "keywords": [],
      "status": "document",
      "sha256": "f120e4ba101dff2cfd7d8510232f6765528738783b5c5b2ba2ba6de8cecada2a"
    },
    {
      "id": "zh/31_tio-im/05.md",
      "title": "创建工程",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/05.md",
      "source": "zh/31_tio-im/05.md",
      "description": "创建工程 框架 本项目使用 tio-boot 框架,包含的依赖如下",
      "keywords": [],
      "status": "document",
      "sha256": "8d626692bb0a250d7dcff55be5bc5daee92998af45239d8d54c14527c5056aef"
    },
    {
      "id": "zh/31_tio-im/06.md",
      "title": "登录",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/06.md",
      "source": "zh/31_tio-im/06.md",
      "description": "登录",
      "keywords": [],
      "status": "placeholder",
      "sha256": "87370bcb21697e2bf1307b31f4ddd12ab6d87af39d1f53527de364cd59961abb"
    },
    {
      "id": "zh/31_tio-im/07.md",
      "title": "历史消息",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/07.md",
      "source": "zh/31_tio-im/07.md",
      "description": "历史消息",
      "keywords": [],
      "status": "placeholder",
      "sha256": "3a80375939804b2ea5874835f77ea5cef6fed90a238627841bd7b26d7be79f82"
    },
    {
      "id": "zh/31_tio-im/08.md",
      "title": "发消息",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/08.md",
      "source": "zh/31_tio-im/08.md",
      "description": "发消息",
      "keywords": [],
      "status": "placeholder",
      "sha256": "f484c9287e3333c7724545e909e87a14b019748addcaf5b528c4f5549d246cb8"
    },
    {
      "id": "zh/31_tio-im/readme.md",
      "title": "31_tio-im",
      "language": "zh-CN",
      "chapter": "zh/31_tio-im",
      "url": "https://tio-boot.com/zh/31_tio-im/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/31_tio-im/readme.md",
      "source": "zh/31_tio-im/readme.md",
      "description": "31_tio-im 本目录包含 9 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《通讯协议文档》。 : 文档《ChatPacket.proto 文档》。 : 文档《java protobuf》。 : 文档《数据表设计》。 : 文档《创建工程》。 : 文档《登录》。 : 文档《历...",
      "keywords": [],
      "status": "document",
      "sha256": "d5f7cf17ea12f4b02136f80ce668c96b750d04b185ab1ca762560481a15c89c5"
    },
    {
      "id": "zh/32_magic-script/01.md",
      "title": "tio-boot 与 magic-script 集成指南",
      "language": "zh-CN",
      "chapter": "zh/32_magic-script",
      "url": "https://tio-boot.com/zh/32_magic-script/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/32_magic-script/01.md",
      "source": "zh/32_magic-script/01.md",
      "description": "tio-boot 与 magic-script 集成指南 本指南演示如何在基于 JVM 的动态脚本框架 magic-script 中，快速集成并在 tio-boot 项目中执行脚本。 1. 概述 magic-script 是一个基于 JVM 的动态脚本引擎，支持类似 JavaScript 的语法，并且可以方便地与 Java 应用集成。通过将脚本与 ti...",
      "keywords": [],
      "status": "document",
      "sha256": "0a9919c87ccbd25977e933cc12d3ab23e3fa9bad65ae00056d194dee0a487c36"
    },
    {
      "id": "zh/32_magic-script/readme.md",
      "title": "32_magic-script",
      "language": "zh-CN",
      "chapter": "zh/32_magic-script",
      "url": "https://tio-boot.com/zh/32_magic-script/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/32_magic-script/readme.md",
      "source": "zh/32_magic-script/readme.md",
      "description": "32_magic-script 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-boot 与 magic-script 集成指南》。",
      "keywords": [],
      "status": "document",
      "sha256": "30b832e9b0a0cf9d56e543217ec7ff5b1c190953edd3f8ecd6018a6610d8a512"
    },
    {
      "id": "zh/33_groovy/01.md",
      "title": "tio-boot 整合 Groovy",
      "language": "zh-CN",
      "chapter": "zh/33_groovy",
      "url": "https://tio-boot.com/zh/33_groovy/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/33_groovy/01.md",
      "source": "zh/33_groovy/01.md",
      "description": "tio-boot 整合 Groovy 在现代 Java 开发中，为了提高开发效率和代码灵活性，Groovy 作为一种运行在 Java 平台上的动态语言，被广泛应用于快速开发、脚本编写、自动化测试以及构建工具中。本文介绍了 Groovy 的主要特点、在 tio-boot 中整合 Groovy 脚本的实现方式，以及详细的代码示例和说明。 1. 什么是 Gr...",
      "keywords": [],
      "status": "document",
      "sha256": "60370bd539687c47723c2f4b90fb9983ef6b61da727f110655120b420def3cc8"
    },
    {
      "id": "zh/33_groovy/02.md",
      "title": "调试常用脚本",
      "language": "zh-CN",
      "chapter": "zh/33_groovy",
      "url": "https://tio-boot.com/zh/33_groovy/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/33_groovy/02.md",
      "source": "zh/33_groovy/02.md",
      "description": "调试常用脚本",
      "keywords": [],
      "status": "placeholder",
      "sha256": "334c320ffd3e71eb6efc49141d8bedd4f08338669a0f14f652ecf463f85b5da5"
    },
    {
      "id": "zh/33_groovy/readme.md",
      "title": "33_groovy",
      "language": "zh-CN",
      "chapter": "zh/33_groovy",
      "url": "https://tio-boot.com/zh/33_groovy/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/33_groovy/readme.md",
      "source": "zh/33_groovy/readme.md",
      "description": "33_groovy 本目录包含 3 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-boot 整合 Groovy》。 : 文档《调试常用脚本》。",
      "keywords": [],
      "status": "document",
      "sha256": "bf0d8a614d5efb9b7cccd5fad71da53936eaff8608213b80fb7d79803edbaf5a"
    },
    {
      "id": "zh/34_firebase/01.md",
      "title": "整合 google firebase",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/01.md",
      "source": "zh/34_firebase/01.md",
      "description": "整合 google firebase firebase 简介 firebase 是 Google 提供的一个移动和网络应用开发平台，它提供了一系列工具和服务来帮助开发者构建高质量的应用，改善用户体验，并快速成长其业务。Firebase 提供的服务覆盖了应用开发的许多方面，包括但不限于数据库、认证、分析、配置管理、文件存储、功能测试和云函数等。 Fire...",
      "keywords": [],
      "status": "document",
      "sha256": "ebe68e5d584a60434c94c27235e78c61314d9c7c481213a777864dd0284fcbc0"
    },
    {
      "id": "zh/34_firebase/02.md",
      "title": "Firebase Storage",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/02.md",
      "source": "zh/34_firebase/02.md",
      "description": "Firebase Storage 添加一个 Bucket 创建 bucket Firebase Storage 使用存储桶（Bucket）来组织和存储您的文件。如果您刚创建了 Firebase 项目，Firebase 会为您自动创建一个默认的存储桶。 您可以在 Firebase 控制台的 Storage 部分查看和管理您的存储桶。 要添加或管理存储桶，...",
      "keywords": [],
      "status": "document",
      "sha256": "d01d2762c4216ab5acb2afb152a3211b94dc7073b9b16f36e724b9f859b9a112"
    },
    {
      "id": "zh/34_firebase/03.md",
      "title": "Firebase Authentication",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/03.md",
      "source": "zh/34_firebase/03.md",
      "description": "Firebase Authentication 背景 在现代应用中，用户身份验证是确保系统安全性的重要环节。Firebase Authentication 提供了简单易用的身份验证服务，支持多种身份验证方法，包括电子邮件密码登录、第三方登录（如 Google、Facebook）、匿名登录等。为了确保操作的安全性，如文件上传，通常需要验证用户的身份，并验...",
      "keywords": [],
      "status": "document",
      "sha256": "3215e950e49f6a1f0c9c75144694feea769475e29e4e9612dfd5c9f945bc6e5f"
    },
    {
      "id": "zh/34_firebase/04.md",
      "title": "使用 Firebase Admin SDK 进行匿名用户管理与自定义状态标记",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/04.md",
      "source": "zh/34_firebase/04.md",
      "description": "使用 Firebase Admin SDK 进行匿名用户管理与自定义状态标记 在现代应用程序中，匿名用户管理是一个常见的需求，尤其是在需要为未登录用户提供部分功能的场景中。通过 Firebase Admin SDK，开发者可以方便地管理匿名用户，并为用户设置自定义的状态标记，例如记录用户是否使用过某项特定功能。 本文将介绍如何使用 Firebase A...",
      "keywords": [],
      "status": "document",
      "sha256": "b0d99f51371b593545e35d7618acc9ea85eff8fd3685f5546a7aa30de21d3bd0"
    },
    {
      "id": "zh/34_firebase/05.md",
      "title": "导出用户",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/05.md",
      "source": "zh/34_firebase/05.md",
      "description": "导出用户 导出 Firebase 用户到 Excel 本示例使用 Firebase Admin SDK 从 Firebase 中导出用户信息，并通过 EasyExcelUtils 工具类将数据导出为 Excel 文件。 示例代码 代码解释 环境加载和配置： 使用 EnvUtils.load() 来加载项目中的环境变量，这些变量可能包括 Firebase...",
      "keywords": [],
      "status": "document",
      "sha256": "30359e3f23473ef5e18da10cc54bfe7ecc109f018f6f1a89d398ccc8ba033ba7"
    },
    {
      "id": "zh/34_firebase/06.md",
      "title": "登录注册",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/06.md",
      "source": "zh/34_firebase/06.md",
      "description": "登录注册 简介 本文档概述了基于 Firebase Auth 平台的用户认证系统的设计与实现。系统提供用户注册、登录、密码重置功能，利用 Firebase Authentication 实现安全的用户管理和邮箱验证。本指南旨在为开发人员和相关人员提供详细的实现说明，帮助他们了解、实现并与提供的认证服务进行交互。 需求 用户认证系统需满足以下需求： 用户...",
      "keywords": [],
      "status": "document",
      "sha256": "363c2a34023a009c82481e549558ebfbfe470ac7794e6dca4e22a8df4e9c4d3b"
    },
    {
      "id": "zh/34_firebase/07.md",
      "title": "注册回调",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/07.md",
      "source": "zh/34_firebase/07.md",
      "description": "注册回调 同步 Firebase 用户到后端系统 概述 在现代应用中，用户管理是一个关键的功能。Firebase 提供了强大的身份验证服务，可以轻松地管理用户的创建和删除。然而，在某些场景下，我们需要将 Firebase 的用户数据与后端系统进行同步，以实现更复杂的业务逻辑或数据分析。本文将详细介绍如何通过 Firebase Cloud Functio...",
      "keywords": [],
      "status": "document",
      "sha256": "4f6ede5bf830aa9d7c6381c8f3859e74b9014bfd2b981155d052f18ca6fb3b80"
    },
    {
      "id": "zh/34_firebase/readme.md",
      "title": "34_firebase",
      "language": "zh-CN",
      "chapter": "zh/34_firebase",
      "url": "https://tio-boot.com/zh/34_firebase/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/34_firebase/readme.md",
      "source": "zh/34_firebase/readme.md",
      "description": "34_firebase 本目录包含 9 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《整合 google firebase》。 : 文档《Firebase Storage》。 : 文档《Firebase Authentication》。 : 文档《使用 Firebase Adm...",
      "keywords": [],
      "status": "document",
      "sha256": "c5c90969e38068f621c526a0f58c59fba1c8e0cde4d7818d4452b6dbb8890b24"
    },
    {
      "id": "zh/35_spider/01.md",
      "title": "jsoup",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/01.md",
      "source": "zh/35_spider/01.md",
      "description": "jsoup jsoup 是一个用于解析、提取和处理 HTML 的 Java 库。它提供了一个非常方便的 API，可以让开发者轻松地从 URL、文件或字符串中解析 HTML，并提取所需的内容。本文将带深入了解 jsoup 的基础知识、核心对象以及常用的选择器语法，并通过实际案例演示其应用。 jsoup 基础 1.1 jsoup 入门案例 1.1.1 创建...",
      "keywords": [],
      "status": "document",
      "sha256": "59904bef1453c884845bda8fa56df3542bfdf1d8ae5f6000ddee6ba3192b5d12"
    },
    {
      "id": "zh/35_spider/02.md",
      "title": "爬取 z-lib.io 数据",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/02.md",
      "source": "zh/35_spider/02.md",
      "description": "爬取 z-lib.io 数据 本文将详细介绍如何对 z‑lib.io 进行数据爬取，将关键数据入库，并利用 PostgreSQL 的全文检索功能对书名、作者、出版社、备注等字段建立搜索索引。内容包括网站数据分析、数据表设计、全文检索字段维护（手动更新和触发器自动更新）、以及使用 Java 与 Jsoup 爬取网页、解析数据并批量插入数据库的完整示例代码...",
      "keywords": [],
      "status": "document",
      "sha256": "4a26dbf77fc42e3a329e09c13329be9decc8a352955875a62ec69a26db8c8126"
    },
    {
      "id": "zh/35_spider/03.md",
      "title": "整合 WebMagic",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/03.md",
      "source": "zh/35_spider/03.md",
      "description": "整合 WebMagic 使用 WebMagic 进行网页爬取并入库 本文档详细介绍如何使用 Java 和 WebMagic 进行网页爬取，包括添加依赖项、创建 PageProcessor 进行网页解析、创建 Pipeline 将爬取的数据存入数据库，以及运行爬虫的过程。 示例目标网页：https://www.sis.hawaii.edu/uhdad/a...",
      "keywords": [],
      "status": "document",
      "sha256": "c93c5483b3ff789d499256165b61baf5103a85c95dbc6d3c65c5de08410b0e2c"
    },
    {
      "id": "zh/35_spider/04.md",
      "title": "WebMagic 示例：爬取学校课程数据",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/04.md",
      "source": "zh/35_spider/04.md",
      "description": "WebMagic 示例：爬取学校课程数据 目标是使用 WebMagic 框架构建一个完整的爬虫示例，从夏威夷大学的课程数据网页中自动提取并存储课程相关信息到数据库中。整个过程包括以下几个关键步骤： 数据分析：分析目标网页的 HTML 结构，确定需要爬取的内容及其位置，例如机构列表、学期信息、学科列表、课程详细信息等。 数据库表设计：为每个爬取的数据类型...",
      "keywords": [],
      "status": "document",
      "sha256": "e7f295a3de570e437c33d0e83905f803c63382b8b032ccc6b99b3d0ca1acc4f7"
    },
    {
      "id": "zh/35_spider/05.md",
      "title": "Playwright",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/05.md",
      "source": "zh/35_spider/05.md",
      "description": "Playwright 简介 1. 什么是 Playwright Playwright 是一个由微软开发的现代化网页自动化测试和浏览器操作工具。它支持多种浏览器，包括 Chromium、Firefox 和 WebKit，并提供一致的跨浏览器 API。以下是 Playwright 的一些关键特点： 多浏览器支持：Playwright 支持 Chromium...",
      "keywords": [],
      "status": "document",
      "sha256": "b219e5b57a1f257cc46ba16af32fd5c12228cd8120ccec563cc070ac32db8698"
    },
    {
      "id": "zh/35_spider/06.md",
      "title": "Flexmark (Markdown 处理器)",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/06.md",
      "source": "zh/35_spider/06.md",
      "description": "Flexmark (Markdown 处理器) 简介 Flexmark 是一个功能强大的 Java Markdown 处理库，支持将 HTML 转换为 Markdown。它提供了灵活的 API，能够从 HTML 中提取内容并将其转换为符合 Markdown 语法的文本格式。Flexmark 提供了多种扩展和选项，使其在各种 Markdown 转换场景中...",
      "keywords": [],
      "status": "document",
      "sha256": "189abc55233ea633772ed3528cba307e82f1164c4b1ddf15bce232f45b3c789d"
    },
    {
      "id": "zh/35_spider/07.md",
      "title": "tio-boot 整合 Playwright",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/07.md",
      "source": "zh/35_spider/07.md",
      "description": "tio-boot 整合 Playwright 简介 在使用 Playwright 进行网页数据抓取时，每次启动 Playwright 都会带来较大的性能开销。为了解决这一问题，可以在服务启动时初始化 Playwright，并在服务关闭时正确释放资源，从而显著提升性能。本文将介绍如何使用 TioBoot 整合 Playwright，实现高效的网页数据获取...",
      "keywords": [],
      "status": "document",
      "sha256": "df217f5d240fce6375d7c6017c2d88c9dac4be963da0deb7c94082ce43827656"
    },
    {
      "id": "zh/35_spider/08.md",
      "title": "缓存网页数据",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/08.md",
      "source": "zh/35_spider/08.md",
      "description": "缓存网页数据 一、功能概述 在某些场景下，我们需要对网页内容进行批量爬取和分析。但如果每次访问浏览器都进行实时加载，会消耗较多的系统资源（例如启动浏览器加载时可能会占用 90M 以上的内存）。因此，本方案的设计思路是：将已爬取到的网页内容进行缓存，后续重复访问同一页面时直接使用缓存内容，达到减少资源消耗和爬取时延的目的。 本方案主要包含以下几个部分： ...",
      "keywords": [],
      "status": "document",
      "sha256": "29d91b8cc75a73714644e0b79a888478ef29657de0bcc2383eafa39aadd7c12b"
    },
    {
      "id": "zh/35_spider/readme.md",
      "title": "35_spider",
      "language": "zh-CN",
      "chapter": "zh/35_spider",
      "url": "https://tio-boot.com/zh/35_spider/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/35_spider/readme.md",
      "source": "zh/35_spider/readme.md",
      "description": "35_spider 本目录包含 15 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《jsoup》。 : 文档《爬取 z-lib.io 数据》。 : 文档《整合 WebMagic》。 : 文档《WebMagic 示例：爬取学校课程数据》。 : 文档《Playwright》。 : ...",
      "keywords": [],
      "status": "document",
      "sha256": "08e88ceea37d805b4e6d3e9cb29a0f7632ab2d2c71ed76bd2ac7d61681730901"
    },
    {
      "id": "zh/36_integration_thirty_party/01.md",
      "title": "整合 okhttp",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/01.md",
      "source": "zh/36_integration_thirty_party/01.md",
      "description": "整合 okhttp 在现代 Java 应用开发中，高效的 HTTP 客户端管理至关重要。本文将介绍如何在 tio-boot 框架中整合 OkHttp，以及几种常见的 OkHttpClient 管理方式，包括使用 Bean 容器管理、单例枚举模式以及设置代理的方法。 添加依赖 将 OkHttpClient 添加到 Bean 容器 在 tio-boot 中...",
      "keywords": [],
      "status": "document",
      "sha256": "996064b69481a72029da2ff9ffaf370c659e6f5f7691391cabaa7447d231c0d8"
    },
    {
      "id": "zh/36_integration_thirty_party/02.md",
      "title": "整合 GrpahQL",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/02.md",
      "source": "zh/36_integration_thirty_party/02.md",
      "description": "整合 GrpahQL GraphQL 简介 GraphQL 提供了一种灵活、高效的数据查询方式，广泛应用于现代 web 和移动应用开发中。 GraphQL 是一种用于 API 的查询语言以及服务器端的运行环境，它通过给予客户端请求所需数据的能力来提供更高效、灵活的交互。GraphQL 由 Facebook 于 2012 年开发，并于 2015 年开源。...",
      "keywords": [],
      "status": "document",
      "sha256": "37ef89fa41f61dc77b0f61546964d2180e9228916795ad66683bac60dc401ee2"
    },
    {
      "id": "zh/36_integration_thirty_party/03.md",
      "title": "集成 Mailjet",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/03.md",
      "source": "zh/36_integration_thirty_party/03.md",
      "description": "集成 Mailjet 本文档旨在指导开发者如何在 Java 项目中集成 Mailjet 以实现邮件发送功能。内容涵盖了 Maven 依赖配置、应用配置文件设置、工具类封装以及测试方法。此外，还介绍了如何使用封装好的工具类在 Enjoy 框架中发送邀请邮件，并提供了相关的邮件模板和代码示例。 Maven 依赖配置 在项目的 pom.xml 文件中添加 M...",
      "keywords": [],
      "status": "document",
      "sha256": "25984add4e39b54b059abc96149cb73ad954d6c5abfbe1c6fd522dadebcfa841"
    },
    {
      "id": "zh/36_integration_thirty_party/04.md",
      "title": "整合 ip2region",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/04.md",
      "source": "zh/36_integration_thirty_party/04.md",
      "description": "整合 ip2region 使用 ip2region 在 Java 中进行 IP 地理位置查询 本文将介绍如何使用 ip2region 库在 Java 应用中进行 IP 地址查询。ip2region 库提供了一种快速准确的方式来确定 IP 地址的地理位置。我们将一步步介绍如何设置库、配置它以及使用它来获取 IP 地址信息。 前提条件 在开始之前，确保具备...",
      "keywords": [],
      "status": "document",
      "sha256": "938aabadd7c9bfc1448acb296a4dbd22cb3c8234692ec06b50b32e8b3a98a24a"
    },
    {
      "id": "zh/36_integration_thirty_party/05.md",
      "title": "整合 GeoLite 离线库",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/05.md",
      "source": "zh/36_integration_thirty_party/05.md",
      "description": "整合 GeoLite 离线库 整合 GeoLite 离线库：Java 通过 IP 获取地理位置信息 本文档介绍如何使用 GeoIP2 的离线库 GeoLite2-City，通过 Java 代码获取 IP 地址对应的地理信息。通过该示例，读者可以了解到如何获取城市、国家、经纬度以及邮政编码等数据，同时了解哪些信息需要额外的数据库支持。 1. GeoIP ...",
      "keywords": [],
      "status": "document",
      "sha256": "52e4eecabb9cdcf5c4ea7b2c6c9816f313701fa98988b0d685796ad9c7dc5368"
    },
    {
      "id": "zh/36_integration_thirty_party/06.md",
      "title": "整合 Lark 机器人指南",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/06.md",
      "source": "zh/36_integration_thirty_party/06.md",
      "description": "整合 Lark 机器人指南 本指南将介绍如何将 Lark 机器人集成到您的应用程序中。我们将介绍两种集成方式： 使用 LarksuiteNotificationUtils 工具类 使用 Lark 官方 SDK (oapi-sdk) 目录 使用 LarksuiteNotificationUtils 添加机器人 推送消息 使用 Lark 官方 SDK (o...",
      "keywords": [],
      "status": "document",
      "sha256": "ce1810eba4f44d17fc30f7539036addfbe5249ead8cf0f292767090305da545d"
    },
    {
      "id": "zh/36_integration_thirty_party/07.md",
      "title": "集成 Lark Mail 实现邮件发送",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/07.md",
      "source": "zh/36_integration_thirty_party/07.md",
      "description": "集成 Lark Mail 实现邮件发送 本文档介绍如何基于 Lark Mail 实现邮件发送功能。通过继承 Lark Mail 接口并调用内部封装的邮件发送工具，我们可以方便地对接 smtp.larksuite.com 的 SMTP 服务，实现邮件发送。下面将详细介绍如何在项目中集成及使用这一功能。 1. 环境准备与账号配置 在使用 Lark Mail...",
      "keywords": [],
      "status": "document",
      "sha256": "34ac653d671a2eec90efbdc913df5823cff837588a5ddc7166198f5d425849fc"
    },
    {
      "id": "zh/36_integration_thirty_party/08.md",
      "title": "Thymeleaf",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/08.md",
      "source": "zh/36_integration_thirty_party/08.md",
      "description": "Thymeleaf 1.简介 Thymyleaf 是一个用于在 Java Web 应用程序中渲染动态 HTML 内容的模板引擎。它通过使用特定的模板标签语法，使得在 HTML 文件中可以动态插入变量、循环、条件判断等逻辑，从而生成最终的 HTML 页面。Thymyleaf 非常适合用来生成服务器端渲染的网页，也可以用于生成 HTML 邮件内容。 2. ...",
      "keywords": [],
      "status": "document",
      "sha256": "d264039ae9abeffc21a576f05b8f968cc20b98c95e33f67bf8e151a1d1c6f724"
    },
    {
      "id": "zh/36_integration_thirty_party/09.md",
      "title": "Swagger",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/09.md",
      "source": "zh/36_integration_thirty_party/09.md",
      "description": "Swagger 在现代 Web 应用开发中，API 文档的自动化生成是提高开发效率和维护性的重要手段。Swagger 作为一种广泛使用的 API 文档生成工具，与 Tio-Boot 框架的集成能够为开发者提供便捷的接口文档管理。本文将详细介绍如何在 Tio-Boot 项目中集成 Swagger，包括依赖添加、配置设置、代码实现及相关组件的讲解。 目录 ...",
      "keywords": [],
      "status": "document",
      "sha256": "23623543a1f377be5e71f24f6cdc18982eb2244a23620dfa14809023fb22d7e7"
    },
    {
      "id": "zh/36_integration_thirty_party/10.md",
      "title": "Clerk 验证",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/10.md",
      "source": "zh/36_integration_thirty_party/10.md",
      "description": "Clerk 验证 tio-boot 整合 Clerk 进行 Token 验证 本文档介绍如何将 Clerk SDK for Java 与 tio-boot 框架集成，实现对 token 的验证功能。主要内容包括 Clerk 简介、Token 格式说明以及整合步骤和代码示例。 1. Clerk 简介 Clerk 是一款用于处理身份验证和授权的工具包，支持...",
      "keywords": [],
      "status": "document",
      "sha256": "504c699c3ac7070858b9c7d367718489dfc2c8ad18f92fbbc4864bf7012e498d"
    },
    {
      "id": "zh/36_integration_thirty_party/11.md",
      "title": "集成datadog",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/11.md",
      "source": "zh/36_integration_thirty_party/11.md",
      "description": "集成datadog 1.注册账号 https://www.datadoghq.com/#",
      "keywords": [],
      "status": "document",
      "sha256": "f60422cfa5caab187e7b2ff5cb47afb6a8f7ca7e33aa9ee2d88215bc04ca1adf"
    },
    {
      "id": "zh/36_integration_thirty_party/readme.md",
      "title": "36_integration_thirty_party",
      "language": "zh-CN",
      "chapter": "zh/36_integration_thirty_party",
      "url": "https://tio-boot.com/zh/36_integration_thirty_party/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/36_integration_thirty_party/readme.md",
      "source": "zh/36_integration_thirty_party/readme.md",
      "description": "36_integration_thirty_party 本目录包含 19 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《整合 okhttp》。 : 文档《整合 GrpahQL》。 : 文档《集成 Mailjet》。 : 文档《整合 ip2region》。 : 文档《整合 Geo...",
      "keywords": [],
      "status": "document",
      "sha256": "9aa99e28e29798fccb6d14de638da04afcdfbc5bfcb4fabcd1b0cc9a3dd1a965"
    },
    {
      "id": "zh/37_dubbo/01.md",
      "title": "概述",
      "language": "zh-CN",
      "chapter": "zh/37_dubbo",
      "url": "https://tio-boot.com/zh/37_dubbo/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/37_dubbo/01.md",
      "source": "zh/37_dubbo/01.md",
      "description": "概述 什么是 Dubbo Apache Dubbo 是一款 RPC 服务开发框架，用于解决微服务架构下的服务治理与通信问题，官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力， 利用 Dubbo 提供的丰富服务治理特性，可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求...",
      "keywords": [],
      "status": "document",
      "sha256": "584113c69632bc9ed66909c7e991be5301b0130470923ac02883affdaf09677d"
    },
    {
      "id": "zh/37_dubbo/02.md",
      "title": "dubbo 2.6.0",
      "language": "zh-CN",
      "chapter": "zh/37_dubbo",
      "url": "https://tio-boot.com/zh/37_dubbo/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/37_dubbo/02.md",
      "source": "zh/37_dubbo/02.md",
      "description": "dubbo 2.6.0 Introduction dubbo Dubbo 作为一款微服务框架，最重要的是向用户提供跨进程的 RPC 远程调用能力。如上图所示，Dubbo 的服务消费者（Consumer）通过一系列的工作将请求发送给服务提供者（Provider）。 为了实现这样一个目标，Dubbo 引入了注册中心（Registry）组件，通过注册中心，服...",
      "keywords": [],
      "status": "document",
      "sha256": "2ab88e19245bafdd327d252f72012a7b3ebcf3f6dada5836d8fd9c2382311af4"
    },
    {
      "id": "zh/37_dubbo/03.md",
      "title": "dubbo 2.6.0 调用过程",
      "language": "zh-CN",
      "chapter": "zh/37_dubbo",
      "url": "https://tio-boot.com/zh/37_dubbo/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/37_dubbo/03.md",
      "source": "zh/37_dubbo/03.md",
      "description": "dubbo 2.6.0 调用过程 异常堆栈 让我们分析这个异常堆栈，从下往上讲解 Dubbo 的调用过程： 线程启动 (java.lang.Thread.run): 调用链的起点是 Java 线程的启动。Thread.run 方法是所有线程执行的入口。 线程池执行 (ThreadPoolExecutor$Worker.run): 线程池中的工作线程开始...",
      "keywords": [],
      "status": "document",
      "sha256": "3d6905e4249c746dae84cf996b52bd01740d53d8995a625db47de395d8724203"
    },
    {
      "id": "zh/37_dubbo/04.md",
      "title": "dubbo 3.2.0",
      "language": "zh-CN",
      "chapter": "zh/37_dubbo",
      "url": "https://tio-boot.com/zh/37_dubbo/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/37_dubbo/04.md",
      "source": "zh/37_dubbo/04.md",
      "description": "dubbo 3.2.0 添加依赖",
      "keywords": [],
      "status": "document",
      "sha256": "79a2fcf9db24a305ac4656b82f46ce3793e60a14e23ac3f037e385296cf6f440"
    },
    {
      "id": "zh/37_dubbo/readme.md",
      "title": "37_dubbo",
      "language": "zh-CN",
      "chapter": "zh/37_dubbo",
      "url": "https://tio-boot.com/zh/37_dubbo/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/37_dubbo/readme.md",
      "source": "zh/37_dubbo/readme.md",
      "description": "37_dubbo 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《概述》。 : 文档《dubbo 2.6.0》。 : 文档《dubbo 2.6.0 调用过程》。 : 文档《dubbo 3.2.0》。 image.png: 图片资源，用于本目录文档配图或界面示意。",
      "keywords": [],
      "status": "document",
      "sha256": "e7f002f183c2508f1ca05b01de8ebe9c69901e35e9169a189e05da4667a16023"
    },
    {
      "id": "zh/38_spring/01.md",
      "title": "Spring Boot Web 整合 Tio Boot",
      "language": "zh-CN",
      "chapter": "zh/38_spring",
      "url": "https://tio-boot.com/zh/38_spring/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/38_spring/01.md",
      "source": "zh/38_spring/01.md",
      "description": "Spring Boot Web 整合 Tio Boot 本文将详细讲解如何使用 Spring Boot 整合 Tio Boot，实现两者各自优势的互补： 使用 Spring Boot 内置的 Servlet 容器和 Controller 机制 利用 Tio Boot 的其他功能，如数据库操作、AOP 容器以及高性能的服务支持 整合之后的架构可以实现： ...",
      "keywords": [],
      "status": "document",
      "sha256": "0a86488098c24a6bce945c4e40311f7191f602350a1222cdce71b2eecc423def"
    },
    {
      "id": "zh/38_spring/02.md",
      "title": "spring-boot-starter-webflux 整合 tio-boot",
      "language": "zh-CN",
      "chapter": "zh/38_spring",
      "url": "https://tio-boot.com/zh/38_spring/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/38_spring/02.md",
      "source": "zh/38_spring/02.md",
      "description": "spring-boot-starter-webflux 整合 tio-boot 本文档提供了如何将 tio-boot-server 集成到使用 spring-boot-starter-webflux 的项目中。默认情况下，Spring WebFlux 使用 Netty 作为网络处理层。本文档将引导如何将 tio-boot-server 作为替代品整合到...",
      "keywords": [],
      "status": "document",
      "sha256": "fda8bd7ba7cd6a2985690864ee0201e47b6871d24643e7110b2aa90b5992c63f"
    },
    {
      "id": "zh/38_spring/03.md",
      "title": "tio-boot 整合 spring-boot-starter",
      "language": "zh-CN",
      "chapter": "zh/38_spring",
      "url": "https://tio-boot.com/zh/38_spring/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/38_spring/03.md",
      "source": "zh/38_spring/03.md",
      "description": "tio-boot 整合 spring-boot-starter tio-boot 整合 spring-boot-starter：启动原理与全流程解析 本文给出一套可落地的整合方案：在同一进程中以 tio-boot 作为主启动与路由入口，在 tio-boot 初始化阶段拉起 Spring Boot 容器，并通过 AOP/IOC 桥接实现 @Autowir...",
      "keywords": [],
      "status": "document",
      "sha256": "93ba4a9a9b78ffea7d4b07615461277fed30f5eadf3b39fc85efc95ba854204f"
    },
    {
      "id": "zh/38_spring/04.md",
      "title": "Tio Boot 整合 Spring Boot Starter db",
      "language": "zh-CN",
      "chapter": "zh/38_spring",
      "url": "https://tio-boot.com/zh/38_spring/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/38_spring/04.md",
      "source": "zh/38_spring/04.md",
      "description": "Tio Boot 整合 Spring Boot Starter db 简介 传统上，我们通过引入 spring-boot-starter-web，将 Spring Boot 的 Controller 与 Tio Boot 的 Service 进行整合。然而，这种方法虽然可行，但却丢失了 Tio Boot 在处理请求时的异步和非阻塞特性。 为了解决这一问...",
      "keywords": [],
      "status": "document",
      "sha256": "6bf23d0e9bd060077e4adee25f7291c865711dea51a3173143c6a15bdbc05d8c"
    },
    {
      "id": "zh/38_spring/05.md",
      "title": "Tio Boot 整合 Spring Boot Starter Data Redis 指南",
      "language": "zh-CN",
      "chapter": "zh/38_spring",
      "url": "https://tio-boot.com/zh/38_spring/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/38_spring/05.md",
      "source": "zh/38_spring/05.md",
      "description": "Tio Boot 整合 Spring Boot Starter Data Redis 指南 引言 在现代 Java 开发中，Tio Boot 是一个高性能的异步非阻塞网络框架，而 Spring Boot 则是一个简化 Spring 应用开发的快速开发框架。将两者结合，可以构建出高性能且易于维护的应用程序。 本指南将详细介绍如何将 Tio Boot 与 ...",
      "keywords": [],
      "status": "document",
      "sha256": "5cb3aaabf7483bf25808cff224b28ba72aae220be3e64d7c21b8354071b12fbc"
    },
    {
      "id": "zh/38_spring/readme.md",
      "title": "38_spring",
      "language": "zh-CN",
      "chapter": "zh/38_spring",
      "url": "https://tio-boot.com/zh/38_spring/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/38_spring/readme.md",
      "source": "zh/38_spring/readme.md",
      "description": "38_spring 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Spring Boot Web 整合 Tio Boot》。 : 文档《spring-boot-starter-webflux 整合 tio-boot》。 : 文档《tio-boot 整合 spri...",
      "keywords": [],
      "status": "document",
      "sha256": "2821e36d8722b912af93323ebfc19a5c21b05730060bc7b16558259db4122e1c"
    },
    {
      "id": "zh/39_spring-cloud/01.md",
      "title": "tio-boot spring-cloud",
      "language": "zh-CN",
      "chapter": "zh/39_spring-cloud",
      "url": "https://tio-boot.com/zh/39_spring-cloud/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/39_spring-cloud/01.md",
      "source": "zh/39_spring-cloud/01.md",
      "description": "tio-boot spring-cloud 概述 tio-boot 完全支持 spring-cloud 仅仅是 web 中间件使用 tio-boot-server,其他组件仍然是 spring-cloud tio-boot, Spring Cloud, 和 Consul 整合 tio-boot, Spring Cloud, 和 Consul 实现服务注...",
      "keywords": [],
      "status": "document",
      "sha256": "43cbfe5e85542790f7cdab54dc0afd615882bf4bdb52b26f7b33f68627d84ab2"
    },
    {
      "id": "zh/39_spring-cloud/readme.md",
      "title": "39_spring-cloud",
      "language": "zh-CN",
      "chapter": "zh/39_spring-cloud",
      "url": "https://tio-boot.com/zh/39_spring-cloud/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/39_spring-cloud/readme.md",
      "source": "zh/39_spring-cloud/readme.md",
      "description": "39_spring-cloud 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-boot spring-cloud》。",
      "keywords": [],
      "status": "document",
      "sha256": "fd0ec9ee53e8bf0ba768ccced380f6103c39697f06146508ef65c17fbb6566a4"
    },
    {
      "id": "zh/40_quarkus/01.md",
      "title": "Quarkus（无 HTTP）整合 tio-boot（有 HTTP）",
      "language": "zh-CN",
      "chapter": "zh/40_quarkus",
      "url": "https://tio-boot.com/zh/40_quarkus/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/40_quarkus/01.md",
      "source": "zh/40_quarkus/01.md",
      "description": "下面是一篇整理、润色并补充解释后的完整技术文档，目标是： 让第一次接触这套方案的读者，也能一步一步读懂“为什么要这样做、每一层在做什么、代码为什么这么写”。 Quarkus（无 HTTP）整合 tio-boot（有 HTTP） 同 JVM 架构完整方案说明 一、背景与问题动机 在 Java 服务架构中，常见的两类诉求往往是冲突的： 高性能、可控的网络层...",
      "keywords": [],
      "status": "document",
      "sha256": "7ccd1a9d66dc1f1b98813995938f769975752641164276f8afd9dbe859a53ad8"
    },
    {
      "id": "zh/40_quarkus/02.md",
      "title": "tio-boot + Quarkus + Hibernate ORM Panache",
      "language": "zh-CN",
      "chapter": "zh/40_quarkus",
      "url": "https://tio-boot.com/zh/40_quarkus/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/40_quarkus/02.md",
      "source": "zh/40_quarkus/02.md",
      "description": "tio-boot + Quarkus + Hibernate ORM Panache 1. 设计目标回顾 tio-boot 唯一对外 HTTP/网络入口 管端口、路由、handler、协议 Quarkus 只做后台运行时容器 提供 CDI（Arc）、事务（@Transactional）、ORM（Hibernate + Panache）、数据源/连接池 ...",
      "keywords": [],
      "status": "document",
      "sha256": "027dca40dba6eab2e849625846b104a1a03268aa82a9f874ba6c87db24a0ba11"
    },
    {
      "id": "zh/40_quarkus/03.md",
      "title": "tio-boot + Quarkus + Hibernate ORM Panache + jOOQ 整合方案",
      "language": "zh-CN",
      "chapter": "zh/40_quarkus",
      "url": "https://tio-boot.com/zh/40_quarkus/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/40_quarkus/03.md",
      "source": "zh/40_quarkus/03.md",
      "description": "tio-boot + Quarkus + Hibernate ORM Panache + jOOQ 整合方案 1. 架构目标升级 在既有设计中： tio-boot 唯一对外 HTTP / 网络入口，负责端口、协议、路由与 handler。 Quarkus 仅作为后台运行时容器，提供： CDI（Arc） 事务（JTA / @Transactional） ...",
      "keywords": [],
      "status": "document",
      "sha256": "2a32ec3c9b89292ca6ba04f3d086a9ec90f54c7b748a04d80dab20003114a068"
    },
    {
      "id": "zh/40_quarkus/readme.md",
      "title": "40_quarkus",
      "language": "zh-CN",
      "chapter": "zh/40_quarkus",
      "url": "https://tio-boot.com/zh/40_quarkus/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/40_quarkus/readme.md",
      "source": "zh/40_quarkus/readme.md",
      "description": "40_quarkus 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Quarkus（无 HTTP）整合 tio-boot（有 HTTP）》。 : 文档《tio-boot + Quarkus + Hibernate ORM Panache》。 : 文档《tio-b...",
      "keywords": [],
      "status": "document",
      "sha256": "3bbcd15b1a17eb5232caf6fcbc6521bb766dc69a625fd72e512995b14f700eb8"
    },
    {
      "id": "zh/41_postgresql/01.md",
      "title": "PostgreSQL 安装",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/01.md",
      "source": "zh/41_postgresql/01.md",
      "description": "PostgreSQL 安装 docker 安装 本文档将指导您如何在单机环境下使用 Docker 安装 PostgreSQL 数据库。我们将涵盖从初始安装到数据持久化的整个过程。 环境准备 确保您的系统已安装 Docker。如果尚未安装，请参考 Docker 官方文档 进行安装。 步骤一：使用 Docker 运行 PostgreSQL 容器 首先，使用...",
      "keywords": [],
      "status": "document",
      "sha256": "b23973dac39dd3e1d5ea5fe755234d4c9b6f0e85283b31d7f1e98c56bf39d009"
    },
    {
      "id": "zh/41_postgresql/02.md",
      "title": "PostgreSQL 主键自增",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/02.md",
      "source": "zh/41_postgresql/02.md",
      "description": "PostgreSQL 主键自增 PostgreSQL 提供了一种便捷的方式来创建自增列,这在需要为每一行生成唯一标识符时非常有用。本教程将介绍如何在 PostgreSQL 中使用自增列,并结合 Java 代码示例说明其实际应用。 1. 在 PostgreSQL 中创建带有自增列的表 在 PostgreSQL 中,我们可以使用SERIAL数据类型来创建自...",
      "keywords": [],
      "status": "document",
      "sha256": "ebe282f505007b34c4b3836fcf031e3f6d44c26587d2c8680b37ff5a81667355"
    },
    {
      "id": "zh/41_postgresql/03.md",
      "title": "PostgreSQL 日期类型",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/03.md",
      "source": "zh/41_postgresql/03.md",
      "description": "PostgreSQL 日期类型 在现代 Web 应用开发中，正确处理日期和时间，尤其是涉及不同时区的场景，是一个至关重要的环节。本文将以 PostgreSQL 的 TIMESTAMP WITH TIME ZONE 类型为核心，详细介绍如何在 Java 后端以及前后端数据交互中进行高效、准确的处理。 1. 核心概念：数据库中的时间存储 在开始之前，我们首...",
      "keywords": [],
      "status": "document",
      "sha256": "898c4b36564108a8967a257667fa815e68c23f80f672874125b72da23fc8c16b"
    },
    {
      "id": "zh/41_postgresql/04.md",
      "title": "Postgresql 金融类型",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/04.md",
      "source": "zh/41_postgresql/04.md",
      "description": "Postgresql 金融类型 在金融系统中，PostgreSQL 通常使用 numeric 类型来存储高精度的数值数据，而在 Java 中推荐使用 java.math.BigDecimal 类来处理这类数据。本文将以一个具体的示例说明如何将 Java 中接收到的字符串 \"20\" 转换为 BigDecimal 对象，并存储到数据库中字段类型为 nume...",
      "keywords": [],
      "status": "document",
      "sha256": "1e3c026c4b5622f85f7a39e04d6b39775c650cfe4e58252b283739ea3ea22d75"
    },
    {
      "id": "zh/41_postgresql/05.md",
      "title": "PostgreSQL 数组类型",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/05.md",
      "source": "zh/41_postgresql/05.md",
      "description": "PostgreSQL 数组类型 基础数据类型数组 在数据模型设计中，经常会遇到需要存储数组字段的需求，尤其是在 PostgreSQL 数据库中。本文将以 java-db 框架为例，详细介绍如何支持对 PostgreSQL bigint[]、varchar[] 和 int[] 等数组字段的读写操作。示例将基于 java-db 的自动生成的实体类，具体实现...",
      "keywords": [],
      "status": "document",
      "sha256": "c0b4397ae426b8fad7027395944c86f82b201b2db9516de79006e561b391f084"
    },
    {
      "id": "zh/41_postgresql/06.md",
      "title": "索引",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/06.md",
      "source": "zh/41_postgresql/06.md",
      "description": "索引 单列索引索引和聚合索引 本文以 mv_scene_code 表为例，围绕以下几类查询，说明 PostgreSQL 对索引的使用方式，以及如何设计更合理的索引。 一、仅创建 group_id 单列索引的情况 索引定义 查询行为分析 1. 查询仅包含 group_id PostgreSQL 会使用该单列索引 可以通过索引快速定位满足条件的行 对于等值...",
      "keywords": [],
      "status": "document",
      "sha256": "bcaf58fd07ccc04392bfcec045f13f74e8a55b3e71c610f36e62739a39b5c34e"
    },
    {
      "id": "zh/41_postgresql/07.md",
      "title": "PostgreSQL 查询优化",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/07.md",
      "source": "zh/41_postgresql/07.md",
      "description": "PostgreSQL 查询优化 在面对大数据量（如 rumi_rmp_rating 表中的 1 千万 条记录）时，分区表是一种有效的优化手段。本文将详细探讨在将表转换为分区表后，查询和插入操作的变化，以及如何利用分区表进行优化。 一、索引 原始查询示例： 在未优化前，此查询耗时约 19 秒。通过在 teacher_id 列上创建索引： 查询时间可缩短至...",
      "keywords": [],
      "status": "document",
      "sha256": "30b18e12310ac0856424ccad04bd960d7049a2cf0643fa09707d0b4ce69c4c69"
    },
    {
      "id": "zh/41_postgresql/08.md",
      "title": "获取字段类型",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/08.md",
      "source": "zh/41_postgresql/08.md",
      "description": "获取字段类型 本文档主要介绍如何通过 Java 调用获取数据库字段类型的方法，以及该方法的实现原理和使用 PostgreSQL 获取表结构信息的完整流程。 示例代码说明 以下示例代码展示了如何调用 ApiTable.getFieldType 方法获取 website_page_params 表中 page_cost 字段的类型。代码中首先加载环境变量，...",
      "keywords": [],
      "status": "document",
      "sha256": "b96aa7c56f489ac7b834587cb017e38b6d7aea01e83b37b609dfda4ac61934a0"
    },
    {
      "id": "zh/41_postgresql/09.md",
      "title": "PostgreSQL 全文检索",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/09.md",
      "source": "zh/41_postgresql/09.md",
      "description": "PostgreSQL 全文检索 在处理涉及大量文本数据的应用时，快速且精确的全文检索变得至关重要。本文将引导如何在 PostgreSQL 中对 title、organization、description 和 location 字段进行全文检索，并通过索引提高检索性能。 pgvector 插件 pgvector 是一个用于 PostgreSQL 的扩展...",
      "keywords": [],
      "status": "document",
      "sha256": "0358f6075c689b84e1e29e30f84ecb9b80ada7580034e0d0e5bc0cdf201e8e49"
    },
    {
      "id": "zh/41_postgresql/10.md",
      "title": "PostgreSQL 向量",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/10.md",
      "source": "zh/41_postgresql/10.md",
      "description": "PostgreSQL 向量 余弦相似度与余弦距离 什么是余弦相似度 余弦相似度用于衡量两个向量之间的相似程度。具体来说： 余弦相似度为 1：表示两个向量完全相同。 余弦相似度为 0：表示两个向量正交（没有相似性）。 余弦相似度为 -1：表示两个向量完全相反。 注意：在 pgvector 扩展中，运算符 <=> 实际上计算的是余弦距离，定义为 [ \\te...",
      "keywords": [],
      "status": "document",
      "sha256": "6950ad3091ad7356a01fb3d022709e6fce373e3068171ad1adbfa31dc6d253cc"
    },
    {
      "id": "zh/41_postgresql/11.md",
      "title": "PostgreSQL 优化向量查询",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/11.md",
      "source": "zh/41_postgresql/11.md",
      "description": "PostgreSQL 优化向量查询 本文档介绍了如何通过预先存储向量到数据表中来优化向量查询操作。我们将对比旧的查询方式与优化后的新查询方式，并详细解释新 SQL 的优化点，以及如何在代码中利用这些优化。 一、背景介绍 在原始场景中，需要对大规模文本数据进行向量相似度查询。传统方法是将输入向量直接嵌入到 SQL 查询中进行逐行比较，这会导致以下问题： ...",
      "keywords": [],
      "status": "document",
      "sha256": "9f6e182b05a713c45560ec66c28f482c6a9ff710f30294d85baa05cafc91b4b5"
    },
    {
      "id": "zh/41_postgresql/12.md",
      "title": "PostgreSQL 其他",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/12.md",
      "source": "zh/41_postgresql/12.md",
      "description": "PostgreSQL 其他 Postgres 在某些地方不同于 mysql,所有这里加以说明 RETURN_GENERATED_KEYS UUID 问题描述 数据的库的主键是类型是 UUID,当向数据库添加记录时,数据库会自动生成主键,如何获取生成的主键呢? ApiTable 会自动返回数据库主键的的这,只不过返回主键的有些特殊 我们保存一条记录测试一...",
      "keywords": [],
      "status": "document",
      "sha256": "57927cd517d10f4d7984e0929b1874e1fc62dece0a96ffd2e8c28408ba0adfb5"
    },
    {
      "id": "zh/41_postgresql/readme.md",
      "title": "41_postgresql",
      "language": "zh-CN",
      "chapter": "zh/41_postgresql",
      "url": "https://tio-boot.com/zh/41_postgresql/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/41_postgresql/readme.md",
      "source": "zh/41_postgresql/readme.md",
      "description": "41_postgresql 本目录包含 13 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《PostgreSQL 安装》。 : 文档《PostgreSQL 主键自增》。 : 文档《PostgreSQL 日期类型》。 : 文档《Postgresql 金融类型》。 : 文档《Pos...",
      "keywords": [],
      "status": "document",
      "sha256": "03b3f4e2b896c658a9347e13f94a1f8e94bb1418d177a9b31c915d12bbe9bb23"
    },
    {
      "id": "zh/42_mysql/01.md",
      "title": "使用 Docker 运行 MySQL",
      "language": "zh-CN",
      "chapter": "zh/42_mysql",
      "url": "https://tio-boot.com/zh/42_mysql/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/42_mysql/01.md",
      "source": "zh/42_mysql/01.md",
      "description": "使用 Docker 运行 MySQL 本文档将介绍如何使用 Docker 运行不同版本的 MySQL 容器，包括 MySQL 5.7 和 MySQL 8.x。我们将涵盖基本的运行命令、目录映射配置以及常见问题的解决方法。 MySQL 5.7 1.1 使用 Docker 运行 MySQL 5.7 运行以下命令以启动 MySQL 5.7 容器： 1.2 目...",
      "keywords": [],
      "status": "document",
      "sha256": "faf817aed72e0ea75165c3bce62396f94d806b2aa32a40b09f7a84044d76ae1c"
    },
    {
      "id": "zh/42_mysql/02.md",
      "title": "常见问题",
      "language": "zh-CN",
      "chapter": "zh/42_mysql",
      "url": "https://tio-boot.com/zh/42_mysql/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/42_mysql/02.md",
      "source": "zh/42_mysql/02.md",
      "description": "常见问题 JSON MySQL 8.0.16 JSON 字段键顺序问题 问题描述 在使用 MySQL 8.0.16 版本时，向 JSON 类型的字段插入 JSON 字符串后，发现存储后的 JSON 键顺序与插入前不一致。例如： 创建语句: 查询后的 JSON： 原因分析 MySQL 版本限制： MySQL 8.0.16 是 MySQL 8.0 系列的早...",
      "keywords": [],
      "status": "document",
      "sha256": "572739a6bae7e71e0ec61f2f955ed444fecced5ecb10a4ed15ae80efdbc6f415"
    },
    {
      "id": "zh/42_mysql/readme.md",
      "title": "42_mysql",
      "language": "zh-CN",
      "chapter": "zh/42_mysql",
      "url": "https://tio-boot.com/zh/42_mysql/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/42_mysql/readme.md",
      "source": "zh/42_mysql/readme.md",
      "description": "42_mysql 本目录包含 3 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用 Docker 运行 MySQL》。 : 文档《常见问题》。",
      "keywords": [],
      "status": "document",
      "sha256": "81d5729742ce3af5245b2e603e6c1f791af1b4a28d5c03555d7257a25198bcd2"
    },
    {
      "id": "zh/43_oceanbase/01.md",
      "title": "快速体验 OceanBase 社区版",
      "language": "zh-CN",
      "chapter": "zh/43_oceanbase",
      "url": "https://tio-boot.com/zh/43_oceanbase/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/43_oceanbase/01.md",
      "source": "zh/43_oceanbase/01.md",
      "description": "快速体验 OceanBase 社区版 1. 背景信息 OceanBase 是由蚂蚁集团开发的一款高性能、高可用、分布式关系数据库。自 V4.0.0 版本起，OceanBase 提供了统一的安装包（All-in-One Package），用户可以通过该安装包一次性完成 obd、OceanBase 数据库、ODP、OBAgent、Grafana、Prome...",
      "keywords": [],
      "status": "document",
      "sha256": "2768eb670c39eea1dbe56756e0cc31eaa3a38480a48213778554906d75c45609"
    },
    {
      "id": "zh/43_oceanbase/02.md",
      "title": "快速上手 OceanBase 数据库单机部署与管理",
      "language": "zh-CN",
      "chapter": "zh/43_oceanbase",
      "url": "https://tio-boot.com/zh/43_oceanbase/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/43_oceanbase/02.md",
      "source": "zh/43_oceanbase/02.md",
      "description": "快速上手 OceanBase 数据库单机部署与管理 本文档详细介绍了如何快速部署 OceanBase 单机版集群、查看集群基本信息、创建租户、创建数据库和用户，以及如何连接 OceanBase 集群。通过本指南，即使是初学者也能快速上手 OceanBase 数据库的各项操作。 部署单机版 OceanBase 集群 1. 部署集群环境 登录 ECS 主机...",
      "keywords": [],
      "status": "document",
      "sha256": "23de0bc99bae71fd97ad2a5fcf344a4e5654dd3ad78a516ba1c00cfa6a919cf6"
    },
    {
      "id": "zh/43_oceanbase/03.md",
      "title": "诊断集群性能",
      "language": "zh-CN",
      "chapter": "zh/43_oceanbase",
      "url": "https://tio-boot.com/zh/43_oceanbase/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/43_oceanbase/03.md",
      "source": "zh/43_oceanbase/03.md",
      "description": "诊断集群性能 在进行数据库集群性能诊断时，可以采用多种方法来监控和分析系统状态。可以使用白屏监控工具如 OCP_Express 或 Prometheus 进行可视化监控，也可以通过直接运行 SQL 命令（黑屏操作）来获取实时性能数据。本文档将详细介绍如何通过 SQL 命令获取和分析 OceanBase 集群的性能指标，涵盖 CPU、内存、IO、磁盘等方...",
      "keywords": [],
      "status": "document",
      "sha256": "c25d3153494e00c98c17b17d6befaede54373c5bd0ad9ac81118beed0141fd70"
    },
    {
      "id": "zh/43_oceanbase/04.md",
      "title": "优化 SQL 性能指南",
      "language": "zh-CN",
      "chapter": "zh/43_oceanbase",
      "url": "https://tio-boot.com/zh/43_oceanbase/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/43_oceanbase/04.md",
      "source": "zh/43_oceanbase/04.md",
      "description": "优化 SQL 性能指南 本指南介绍了如何在 OceanBase 环境下定位与优化 SQL 性能问题。通过使用 SQL 查询定位资源消耗较高的语句、分析执行计划以及针对性地优化 SQL，可以显著提升系统性能。以下内容涵盖了从登录集群、定位 Top SQL，到获取执行计划、分析执行瓶颈，再到最终的 SQL 改写和优化过程的完整步骤和案例分析。 一、前提准备...",
      "keywords": [],
      "status": "document",
      "sha256": "a17814934f6c04004b9304b69c90d03ce0fc78a1897c6e39609ce22a292372e0"
    },
    {
      "id": "zh/43_oceanbase/05.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/43_oceanbase",
      "url": "https://tio-boot.com/zh/43_oceanbase/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/43_oceanbase/05.md",
      "source": "zh/43_oceanbase/05.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/43_oceanbase/readme.md",
      "title": "43_oceanbase",
      "language": "zh-CN",
      "chapter": "zh/43_oceanbase",
      "url": "https://tio-boot.com/zh/43_oceanbase/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/43_oceanbase/readme.md",
      "source": "zh/43_oceanbase/readme.md",
      "description": "43_oceanbase 本目录包含 6 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《快速体验 OceanBase 社区版》。 : 文档《快速上手 OceanBase 数据库单机部署与管理》。 : 文档《诊断集群性能》。 : 文档《优化 SQL 性能指南》。 : 文档《待定》。",
      "keywords": [],
      "status": "document",
      "sha256": "aa0610c6d8ff03258f0abef5cb15b3f31a9e83320b9a649a959df62ec716c277"
    },
    {
      "id": "zh/44_jooq/01.md",
      "title": "使用配置类方式整合 jOOQ",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/01.md",
      "source": "zh/44_jooq/01.md",
      "description": "使用配置类方式整合 jOOQ 在本教程中，我们将演示如何在 tio-boot 项目中，以纯 Java 配置类的方式整合 jOOQ，实现： 不使用 XML 不使用代码生成插件（可选） 使用 DSLContext 进行类型安全 SQL 通过 AOP 自动注入 jOOQ 核心对象 与 tio-boot 生命周期完美整合 通过本文，不仅能学会 怎么做，还能理解...",
      "keywords": [],
      "status": "document",
      "sha256": "0f167a6562f0abec7c979fda8e6f266171a390d819067afa3dd0223e2a8fd95d"
    },
    {
      "id": "zh/44_jooq/02.md",
      "title": "tio-boot + jOOQ 事务管理",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/02.md",
      "source": "zh/44_jooq/02.md",
      "description": "tio-boot + jOOQ 事务管理 本文将基于已经完成的 tio-boot + jOOQ（纯配置类方式、AOP 注入 DSLContext） 的整合方案，继续讲清楚在该架构下如何实现 事务管理。 目标是做到： 以 纯 Java 方式 管理事务 不依赖 Spring，不引入额外框架 支持手动事务、AOP 事务两种写法 明确事务边界，避免连接泄漏与隐...",
      "keywords": [],
      "status": "document",
      "sha256": "84f1a839a3f57e6aad3874df138d5a87d38326aebd8d1b5d39fc175d0146e1f8"
    },
    {
      "id": "zh/44_jooq/03.md",
      "title": "批量操作与性能优化",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/03.md",
      "source": "zh/44_jooq/03.md",
      "description": "批量操作与性能优化 在现代 Web 系统中，数据库往往是性能瓶颈，而批量操作（Batch） 是最直接、最有效的优化手段之一。 本文将在已经完成： tio-boot + jOOQ 整合 AOP 注入 DSLContext 手动 / AOP 事务管理 的基础上，深入讲解： 如何使用 jOOQ 进行高性能批量操作 如何避免常见性能陷阱 如何提升 Postgr...",
      "keywords": [],
      "status": "document",
      "sha256": "5b573a5c718d3ff807eef131dc5ec5ba0b95d89fcd321af89104c7f637e58178"
    },
    {
      "id": "zh/44_jooq/04.md",
      "title": "整合agroal",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/04.md",
      "source": "zh/44_jooq/04.md",
      "description": "整合agroal 本文介绍如何在 tio-boot 项目中使用 Agroal 连接池 作为数据源，并与 jOOQ 集成，同时提供事务管理能力。 该方案具有以下特点： 无 Spring 依赖 程序化配置（对 AOT / Native 更友好） 启动路径清晰 易于控制生命周期 性能稳定 适用于： 高性能 REST / RPC 服务 AOT / GraalV...",
      "keywords": [],
      "status": "document",
      "sha256": "de954e143e6cacc01c00fa02b46015fd98babd7430748d0310ab8f2f4a2ebe98"
    },
    {
      "id": "zh/44_jooq/05.md",
      "title": "代码生成与类型安全",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/05.md",
      "source": "zh/44_jooq/05.md",
      "description": "代码生成与类型安全 在前两篇中，我们已经完成了： tio-boot + jOOQ 纯配置类整合（DSLContext 注入） 事务管理 批量操作与性能优化 但目前的 SQL 仍然是这种写法： 这类字符串方式虽然可用，但它的缺点也很明显： 字段名写错只能运行时报错 重构改字段/表名时无法自动修复 IDE 无法提供真正可靠的自动补全 大项目里容易“潜伏 b...",
      "keywords": [],
      "status": "document",
      "sha256": "59ecd9a999c65fd0d57f21769efb4a49620a5b9f459c4e6231c14233fb1c6834"
    },
    {
      "id": "zh/44_jooq/06.md",
      "title": "基于 Record / POJO 增删改查",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/06.md",
      "source": "zh/44_jooq/06.md",
      "description": "基于 Record / POJO 增删改查 在前几篇中，我们已经完成了： tio-boot + jOOQ 纯配置类整合 事务管理 Agroal / Druid 数据源整合 jOOQ Codegen 强类型升级 到这里，整个基础设施已经齐备。 接下来真正进入日常开发的核心环节： 如何基于 jOOQ 生成的 Table / Record / POJO，写出...",
      "keywords": [],
      "status": "document",
      "sha256": "0c964c3e8eea563430483d08a69eb87ef7005dceaa389dd6eaf699aef78b5928"
    },
    {
      "id": "zh/44_jooq/07.md",
      "title": "UPSERT、批量更新、返回主键与高级 SQL",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/07.md",
      "source": "zh/44_jooq/07.md",
      "description": "UPSERT、批量更新、返回主键与高级 SQL 在前几篇中，我们已经完成了： tio-boot + jOOQ 纯配置类整合 事务管理 Agroal / Druid 数据源整合 jOOQ Codegen 强类型升级 基于 Record / POJO 的增删改查、分页、动态条件、批量插入 到这里，已经可以覆盖大多数常规 CRUD 场景。 但在真实项目中，还...",
      "keywords": [],
      "status": "document",
      "sha256": "2897b0694606dff1c1044b01cdaa4b2c340407e4cb08193d4ee1ce400a4154b6"
    },
    {
      "id": "zh/44_jooq/08.md",
      "title": "的多表关联查询、DTO 投影、聚合统计与视图封装",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/08.md",
      "source": "zh/44_jooq/08.md",
      "description": "的多表关联查询、DTO 投影、聚合统计与视图封装 在前几篇中，我们已经逐步完成了： tio-boot + jOOQ 基础整合 事务管理 连接池整合 Codegen 类型安全 Record / POJO CRUD 批量操作、分页、动态 SQL PostgreSQL UPSERT 与 returning 到这里，已经具备完整的 单表数据访问能力。 但在真实...",
      "keywords": [],
      "status": "document",
      "sha256": "aeb14875084e5507af16fe14ca6e4b7fb7f93ff824391137a045cceae71b9ae8"
    },
    {
      "id": "zh/44_jooq/09.md",
      "title": "的窗口函数、CTE、JSON 查询与 PostgreSQL 高级 SQL 实战",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/09.md",
      "source": "zh/44_jooq/09.md",
      "description": "的窗口函数、CTE、JSON 查询与 PostgreSQL 高级 SQL 实战 在前几篇中，我们已经逐步完成了： tio-boot + jOOQ 基础整合 事务管理 连接池整合 Codegen 类型安全 Record / POJO CRUD 批量、分页、动态 SQL PostgreSQL UPSERT、returning 多表关联查询、DTO 投影、聚...",
      "keywords": [],
      "status": "document",
      "sha256": "0a1d717ec89b2441b3e443511d07036bd70ce09e8bd18d97c884434f8c5da255"
    },
    {
      "id": "zh/44_jooq/10.md",
      "title": "tio-boot + jOOQ 的审计字段、乐观锁、数据权限与企业级 Repository 设计",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/10.md",
      "source": "zh/44_jooq/10.md",
      "description": "下面直接续写下一篇，延续前文风格，作为可直接发布的教程稿。 tio-boot + jOOQ 的审计字段、乐观锁、数据权限与企业级 Repository 设计 在前几篇中，我们已经逐步完成了： tio-boot + jOOQ 基础整合 事务管理 Codegen 强类型升级 Record / POJO CRUD 批量、分页、动态 SQL PostgreSQ...",
      "keywords": [],
      "status": "document",
      "sha256": "a96e2b73a40db095440c19d91445de123bf554b02773780cefb0fd130be09838"
    },
    {
      "id": "zh/44_jooq/11.md",
      "title": "测试策略、SQL 日志、性能诊断与生产排障",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/11.md",
      "source": "zh/44_jooq/11.md",
      "description": "测试策略、SQL 日志、性能诊断与生产排障 在前几篇中，我们已经逐步完成了： tio-boot + jOOQ 基础整合 事务管理 Codegen 强类型升级 Record / POJO CRUD 批量、分页、动态 SQL PostgreSQL UPSERT、returning 多表查询、DTO 投影、聚合统计 JSONB、窗口函数、CTE 与 Post...",
      "keywords": [],
      "status": "document",
      "sha256": "1e5fb1b4cae2d548a0aeec438c37dc4f5b44b710fae067116260fba991bd5307"
    },
    {
      "id": "zh/44_jooq/12.md",
      "title": "多租户、读写分离与多数据源设计",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/12.md",
      "source": "zh/44_jooq/12.md",
      "description": "多租户、读写分离与多数据源设计 在前几篇中，我们已经逐步完成了： tio-boot + jOOQ 基础整合 事务管理 Codegen 强类型升级 Record / POJO CRUD 批量、分页、动态 SQL PostgreSQL UPSERT、returning 多表查询、DTO 投影、聚合统计 JSONB、窗口函数、CTE 与 PostgreSQL...",
      "keywords": [],
      "status": "document",
      "sha256": "1352f3a5ca32a9162bfd7f84193d3e68b66f36a1c46e58be690135787f58435d"
    },
    {
      "id": "zh/44_jooq/13.md",
      "title": "代码生成治理、数据库迁移与团队协作规范实战",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/13.md",
      "source": "zh/44_jooq/13.md",
      "description": "代码生成治理、数据库迁移与团队协作规范实战 在前几篇中，我们已经逐步完成了： tio-boot + jOOQ 基础整合 事务管理 Codegen 强类型升级 Record / POJO CRUD 批量、分页、动态 SQL PostgreSQL UPSERT、returning 多表查询、DTO 投影、聚合统计 JSONB、窗口函数、CTE 与 Post...",
      "keywords": [],
      "status": "document",
      "sha256": "7c8f3626aa3cb6978ec30db1ef560987cc3a5ceed51bddb2dc4a512f6c0c3fb9"
    },
    {
      "id": "zh/44_jooq/readme.md",
      "title": "44_jooq",
      "language": "zh-CN",
      "chapter": "zh/44_jooq",
      "url": "https://tio-boot.com/zh/44_jooq/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/44_jooq/readme.md",
      "source": "zh/44_jooq/readme.md",
      "description": "44_jooq 本目录包含 14 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用配置类方式整合 jOOQ》。 : 文档《tio-boot + jOOQ 事务管理》。 : 文档《批量操作与性能优化》。 : 文档《整合agroal》。 : 文档《代码生成与类型安全》。 : 文档...",
      "keywords": [],
      "status": "document",
      "sha256": "c70298232b2d0bc54261bda450d66dc06371beebac5684455551b600e51be42b"
    },
    {
      "id": "zh/45_media/01.md",
      "title": "JAVE 提取视频中的声音",
      "language": "zh-CN",
      "chapter": "zh/45_media",
      "url": "https://tio-boot.com/zh/45_media/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/45_media/01.md",
      "source": "zh/45_media/01.md",
      "description": "JAVE 提取视频中的声音 1. JAVE 简介 JAVE（Java Audio Video Encoder）是一个开源的 Java 库，专门用于处理多媒体文件的编码和解码操作。JAVE 支持多种格式的音频和视频文件，提供了诸如格式转换、音频提取、视频帧截取等常见的多媒体处理功能。JAVE 底层通过封装 FFmpeg 实现多媒体处理，因此能够执行多种复...",
      "keywords": [],
      "status": "document",
      "sha256": "700fc584c4b9f9b776ab3f99bfc4f68a2d0797bfbf1a26c759325936b367e388"
    },
    {
      "id": "zh/45_media/02.md",
      "title": "Jave 提取视频中的图片",
      "language": "zh-CN",
      "chapter": "zh/45_media",
      "url": "https://tio-boot.com/zh/45_media/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/45_media/02.md",
      "source": "zh/45_media/02.md",
      "description": "Jave 提取视频中的图片 本文档介绍如何使用 JAVE 库内置的 FFmpeg 功能来从视频中提取图片，并通过控制器将其整合到 Web 应用中。 使用 FFmpeg 命令提取图片 获取 FFmpeg 命令路径 JAVE 库内置了一个 DefaultFFMPEGLocator 类，该类在实例化时会将 FFmpeg 可执行文件复制到系统的临时文件夹中。通...",
      "keywords": [],
      "status": "document",
      "sha256": "7fa8ebfa24ec9a41882116074fcd3b3b8022d36390644e46576a442a9967dfaa"
    },
    {
      "id": "zh/45_media/03.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/45_media",
      "url": "https://tio-boot.com/zh/45_media/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/45_media/03.md",
      "source": "zh/45_media/03.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/45_media/readme.md",
      "title": "45_media",
      "language": "zh-CN",
      "chapter": "zh/45_media",
      "url": "https://tio-boot.com/zh/45_media/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/45_media/readme.md",
      "source": "zh/45_media/readme.md",
      "description": "45_media 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《JAVE 提取视频中的声音》。 : 文档《Jave 提取视频中的图片》。 : 文档《待定》。",
      "keywords": [],
      "status": "document",
      "sha256": "c8c2aad90a356b09c02419a322b5c321c5678974b6a06efe39ebe06aeb5782f9"
    },
    {
      "id": "zh/46_asr/01.md",
      "title": "Whisper-JNI",
      "language": "zh-CN",
      "chapter": "zh/46_asr",
      "url": "https://tio-boot.com/zh/46_asr/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/46_asr/01.md",
      "source": "zh/46_asr/01.md",
      "description": "Whisper-JNI 简介 Whisper 是 OpenAI 开发的一个基于 Transformer 的语音识别模型，能够处理多种语言并生成高度准确的语音到文本转录。该模型最初是基于 Python 和机器学习框架（如 PyTorch）构建的，因此开发者必须依赖 Python 和相应的库来进行语音识别任务。 Whisper OpenAI 开源了 Whi...",
      "keywords": [],
      "status": "document",
      "sha256": "af04cdbfef3d0617e4d3b573bf585e6217fd346d21dcc25486685e0133642865"
    },
    {
      "id": "zh/46_asr/readme.md",
      "title": "46_asr",
      "language": "zh-CN",
      "chapter": "zh/46_asr",
      "url": "https://tio-boot.com/zh/46_asr/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/46_asr/readme.md",
      "source": "zh/46_asr/readme.md",
      "description": "46_asr 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Whisper-JNI》。",
      "keywords": [],
      "status": "document",
      "sha256": "fd903fa00125379f1c97f0bb3e10617df147ee0073670f8f9ae22f0e5c303cbf"
    },
    {
      "id": "zh/47_tts/readme.md",
      "title": "47_tts",
      "language": "zh-CN",
      "chapter": "zh/47_tts",
      "url": "https://tio-boot.com/zh/47_tts/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/47_tts/readme.md",
      "source": "zh/47_tts/readme.md",
      "description": "47_tts 本目录包含 1 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。",
      "keywords": [],
      "status": "document",
      "sha256": "abe1a56c243bc6c030ae8466cff3047715c1dce9706d83aaa79b89d90c961f5b"
    },
    {
      "id": "zh/48_ocr/readme.md",
      "title": "48_ocr",
      "language": "zh-CN",
      "chapter": "zh/48_ocr",
      "url": "https://tio-boot.com/zh/48_ocr/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/48_ocr/readme.md",
      "source": "zh/48_ocr/readme.md",
      "description": "48_ocr 本目录包含 1 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。",
      "keywords": [],
      "status": "document",
      "sha256": "5b1516d8e6e4a5ffddc13d9804c8f73328f7438b40ae44f894834922657f1fd3"
    },
    {
      "id": "zh/49_native-media/01.md",
      "title": "java-native-media",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/01.md",
      "source": "zh/49_native-media/01.md",
      "description": "java-native-media 音视频处理优化库 项目背景 在传统的 Java 音视频处理方案中，开发者通常依赖调用 FFmpeg 命令行工具来实现音视频处理需求。但这种方式存在两个主要痛点： 性能损耗 调用外部进程会带来额外的进程间通信开销，从而影响整体处理效率。 包体积膨胀 为了功能完整性，往往需要捆绑 FFmpeg 二进制文件，导致最终应用包...",
      "keywords": [],
      "status": "document",
      "sha256": "e93eaeecd89706d794627843fe35a3d4e9000fbea4900783cd58b49dab35b1d3"
    },
    {
      "id": "zh/49_native-media/02.md",
      "title": "JNI 入门示例",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/02.md",
      "source": "zh/49_native-media/02.md",
      "description": "JNI 入门示例 在开发 Android 或 Java 项目时，为了复用现有的 C/C++ 代码，我们通常会使用 C/C++ 开发一部分核心功能。JNI（Java Native Interface）作为 JVM 与 C/C++ 代码交互的桥梁，提供了这种跨语言调用能力。本文以一个简单的 “Hello JNI” 示例为例，讲解如何搭建环境、生成 JNI ...",
      "keywords": [],
      "status": "document",
      "sha256": "35a95c367bb33f21a82a81a08dbcf4ba300f833fdbd193137a61423faf886584"
    },
    {
      "id": "zh/49_native-media/03.md",
      "title": "mp3 拆分",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/03.md",
      "source": "zh/49_native-media/03.md",
      "description": "mp3 拆分 1. 项目背景与需求分析 目标： 将一个大的 MP3 文件按用户指定的大小拆分为多个小文件。拆分后，每个文件必须满足以下条件： 拆分点处不能破坏 MP3 帧结构； 每个拆分文件均为有效的 MP3 文件，可供语音识别模型处理； 返回拆分后文件的路径（以字符串数组形式返回给 Java 层）。 关键问题： MP3 帧结构： MP3 文件由一系列...",
      "keywords": [],
      "status": "document",
      "sha256": "56e58dbd3cd5f6cd40d9c7f74c6b400d6ae17c7d480060c6c225c2b3b903522f"
    },
    {
      "id": "zh/49_native-media/04.md",
      "title": "mp4 转 mp3",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/04.md",
      "source": "zh/49_native-media/04.md",
      "description": "mp4 转 mp3 1. 安装 ffmpeg mp4 转 mp3 的过程中会遇到下面的库 libavformat、libavcodec、libswresample、libavutil ,需要安装 ffmpeg,使用 vcpkg 安装 ffmpeg 的方法如下 Alt text 2、原理说明 FFmpeg 解码/编码流程 通过 avformat_open...",
      "keywords": [],
      "status": "document",
      "sha256": "3173326c4679f30b31b9342dd3549c457ead3b16302ebfaa572f5b02eb518147"
    },
    {
      "id": "zh/49_native-media/05.md",
      "title": "使用 libmp3lame 实现高质量 MP3 编码",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/05.md",
      "source": "zh/49_native-media/05.md",
      "description": "使用 libmp3lame 实现高质量 MP3 编码 在 Windows 平台上，内置的 MP3 编码器（ACM Wrapper MFT）质量有限，很多开发者希望借助 libmp3lame 这一高质量开源 MP3 编码器实现更好的音频转换效果。本文介绍如何通过 vcpkg 安装支持 libmp3lame 的 FFmpeg、修改 CMake 构建脚本、调...",
      "keywords": [],
      "status": "document",
      "sha256": "864226b56b04c8d87ef565601f702a56a8db79797509c0eb8950b0366142e7bf"
    },
    {
      "id": "zh/49_native-media/06.md",
      "title": "Linux 编译",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/06.md",
      "source": "zh/49_native-media/06.md",
      "description": "Linux 编译 本项目使用 FFmpeg（avcodec、avformat、swresample、avutil 等）和 mp3lame 进行音视频处理，同时使用 JNI 与 Java 交互。由于不同操作系统（Linux 与 Windows）的库查找、加载机制不同，本文档提供了两套配置方式，并解释相关原因和注意事项。 1. 安装依赖库 在 Linux ...",
      "keywords": [],
      "status": "document",
      "sha256": "5b99064b41b5a8ada77e735e26454e4327587ed9dfa54749d1d4d073e5f51def"
    },
    {
      "id": "zh/49_native-media/07.md",
      "title": "macOS 编译",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/07.md",
      "source": "zh/49_native-media/07.md",
      "description": "macOS 编译 在 macOS M2 上编译使用 FFmpeg 与 JNI 的项目，您可以按照以下步骤进行配置和构建： 1. 准备工作 1. 是否需要使用 vcpkg？ 不一定 在 macOS 上，推荐使用 Homebrew 来安装 FFmpeg、lame 等依赖，因为 Homebrew 在 macOS 平台具有更高的普及率和维护性。 可选方案 如果...",
      "keywords": [],
      "status": "document",
      "sha256": "bae292f82060ab60b3159cc3e04d1040578b0bd4b74b1d7fea311262e26026cb"
    },
    {
      "id": "zh/49_native-media/08.md",
      "title": "从 JAR 包中加载本地库文件",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/08.md",
      "source": "zh/49_native-media/08.md",
      "description": "从 JAR 包中加载本地库文件 在跨平台 Java 项目中，往往需要使用 JNI 调用本地（C/C++）代码。本方案介绍如何将 native media 编译后的各平台动态库（如 Windows 的 DLL、Linux 的 .so、macOS 的 .dylib）打包到 JAR 内部，并在运行时通过工具类将这些库文件提取到用户目录下加载。这样既便于统一管...",
      "keywords": [],
      "status": "document",
      "sha256": "935fa022167267342e177df1a4965e8c27cbc066392cc45a51b75b2c2ccf267a"
    },
    {
      "id": "zh/49_native-media/09.md",
      "title": "支持的音频和视频格式",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/09.md",
      "source": "zh/49_native-media/09.md",
      "description": "支持的音频和视频格式 java 支持的格式 整理后的输出如下 C 语言代码实现",
      "keywords": [],
      "status": "document",
      "sha256": "d2cfb5a8d72c1604435e32fa7f60e0152284dbd51f12ef2f059ef51db13e7d96"
    },
    {
      "id": "zh/49_native-media/10.md",
      "title": "任意格式转为 mp3",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/10.md",
      "source": "zh/49_native-media/10.md",
      "description": "任意格式转为 mp3 java 测试代码 c 语言实现 audio_file_utils.h audio_file_utils.c jni_native_mp3.c native_mp3.c",
      "keywords": [],
      "status": "document",
      "sha256": "7c909be76aa2ee11d2717c324cdc319624b650e1ee2d3993b27631915017bf29"
    },
    {
      "id": "zh/49_native-media/11.md",
      "title": "通用格式转换",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/11.md",
      "source": "zh/49_native-media/11.md",
      "description": "通用格式转换 该功能利用 FFmpeg 实现音频格式转换，通过调用本地 DLL 中的 NativeMedia.convertTo 方法，将输入文件转换为指定目标格式。 使用示例 在上面的示例中，\"libmp3lame\" 表示使用 libmp3lame 编码器进行转换，最终输出文件将使用 MP3 容器格式。 targetFormat 参数支持的取值 ta...",
      "keywords": [],
      "status": "document",
      "sha256": "bd50da18f87da70990701c80c7470c534d4ee91ecea82fa8243f4ae77357b020"
    },
    {
      "id": "zh/49_native-media/12.md",
      "title": "通用格式拆分",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/12.md",
      "source": "zh/49_native-media/12.md",
      "description": "通用格式拆分 该功能利用 FFmpeg 强大的多媒体处理能力，实现对音频、视频等多种格式文件的自动拆分。通过调用本地库中的 NativeMedia.split 方法，可以根据指定的文件大小阈值将一个多媒体文件分割成若干个连续的小文件，而无需重新编码，确保原始编码参数不变，从而实现高效、无损的拆分操作。 功能简介 多格式支持：支持 FFmpeg 支持的所...",
      "keywords": [],
      "status": "document",
      "sha256": "18cf25dbac44f3e75d3a96265f1feb7d4e768c98be3223f0809980041228ec52"
    },
    {
      "id": "zh/49_native-media/13.md",
      "title": "视频合并",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/13.md",
      "source": "zh/49_native-media/13.md",
      "description": "视频合并 本方案的主要思路是调用 FFmpeg 的开发库，在 C 层实现“流复制（stream copy）”模式下的多个视频和音频文件的合并操作，并通过 JNI 供 Java 层调用。视频和音频合并过程中针对不同输入文件时长不一致的问题，采用了统一全局时间轴（global offset）的策略，确保合并后各个媒体流在播放时不会出现音视频不同步或音频播放...",
      "keywords": [],
      "status": "document",
      "sha256": "275dd482dfc7bf86fc01b51210109cf81fb594744e706e9b2aaedc97dd805651"
    },
    {
      "id": "zh/49_native-media/14.md",
      "title": "VideoToHLS",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/14.md",
      "source": "zh/49_native-media/14.md",
      "description": "VideoToHLS 流程 使用 native‑media 库将指定的 MP4 文件转换为 HLS 分段，分段时长为 segmentDuration 秒。 生成的 TS 分段文件将存放在与 hlsPath 相同的目录下（文件名按照 tsPattern 命名，例如 \"segment_%03d.ts\"）。 将生成的 m3u8 片段添加到 hlsPath 指...",
      "keywords": [],
      "status": "document",
      "sha256": "ea7d9bfa2b52c5b07a00a39691ce6518a3b2033f4ac506de65ad1b481771b11e"
    },
    {
      "id": "zh/49_native-media/15.md",
      "title": "split_video_to_hls 支持其他语言",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/15.md",
      "source": "zh/49_native-media/15.md",
      "description": "split_video_to_hls 支持其他语言 native_media.h pure_video_to_hls.c 修改 native_video_to_hls.c",
      "keywords": [],
      "status": "document",
      "sha256": "90ad1e396b61ce18bfe0982a4fd1408f70b02f2646ead7cfa6dc9adb321aa903"
    },
    {
      "id": "zh/49_native-media/16.md",
      "title": "持久化 HLS 会话",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/16.md",
      "source": "zh/49_native-media/16.md",
      "description": "持久化 HLS 会话 本项目通过 JNI 封装 FFmpeg 库，实现了一个持久化 HLS 会话模块。该模块支持如下功能： 初始化持久化 HLS 会话 创建 HLS 输出上下文，并保存参数选项，同时记录会话的创建时间。该接口返回一个 native 指针，用于后续追加视频分段或关闭会话。 追加视频分段 根据输入的 MP4 文件，追加视频（和音频）分段到持...",
      "keywords": [],
      "status": "document",
      "sha256": "424019899960f962f6bc9540369108eba7b18cae822bbf462ec25b947333cc5e"
    },
    {
      "id": "zh/49_native-media/17.md",
      "title": "获取视频长度",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/17.md",
      "source": "zh/49_native-media/17.md",
      "description": "获取视频长度 Java C jni_video_length.c",
      "keywords": [],
      "status": "document",
      "sha256": "c24738838bd53cc00659d5a58ace3d1d4f2ccfe8179977bd24f44242ae30dd7a"
    },
    {
      "id": "zh/49_native-media/18.md",
      "title": "保存视频的最后一帧",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/18.md",
      "source": "zh/49_native-media/18.md",
      "description": "保存视频的最后一帧 背景介绍 在视频处理领域，经常会遇到这样的需求： 生成视频缩略图：常常取第一帧或最后一帧作为预览图； 分析视频结尾内容：比如广告检测、结尾画面识别； 封面生成：保存最后一帧作为视频的封面图。 Java 生态中并没有现成的高性能库直接完成此任务，因此我们需要借助 FFmpeg（功能最强大的开源音视频处理库）来获取视频的最后一帧。 为了...",
      "keywords": [],
      "status": "document",
      "sha256": "ad607cfd7231c83df7fede8197a96286a8cf582ec9288ad230b456be16fd6f79"
    },
    {
      "id": "zh/49_native-media/19.md",
      "title": "添加水印",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/19.md",
      "source": "zh/49_native-media/19.md",
      "description": "添加水印 添加 avfilter 按如下步骤修改的 CMakeLists.txt： 查找 avfilter 的头文件路径 添加： 查找 avfilter 的库文件 添加： 将 avfilter 的 include 目录添加到 include_directories() 修改 include_directories 部分： 在 target_link_l...",
      "keywords": [],
      "status": "document",
      "sha256": "61751968e07bb05c0d10292bbe7a0061d54245472523d7c15d9dddf3d3a8c03a"
    },
    {
      "id": "zh/49_native-media/20.md",
      "title": "linux版本",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/20.md",
      "source": "zh/49_native-media/20.md",
      "description": "linux版本 项目源码： https://github.com/litongjava/java-native-media 一、问题现象 应用启动时报错： 二、问题根因 1）应用内置的 native 库依赖 FFmpeg 59 检查 .so 依赖： 输出： 说明该库是 按 FFmpeg 5.x (ABI 59) 编译的 2）服务器实际安装的是 FFmp...",
      "keywords": [],
      "status": "document",
      "sha256": "6d2aee441b96c2f8d0ec79a519d0b37db4bd7f089966971fa53b293a47d3e457"
    },
    {
      "id": "zh/49_native-media/readme.md",
      "title": "49_native-media",
      "language": "zh-CN",
      "chapter": "zh/49_native-media",
      "url": "https://tio-boot.com/zh/49_native-media/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/49_native-media/readme.md",
      "source": "zh/49_native-media/readme.md",
      "description": "49_native-media 本目录包含 24 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《java-native-media》。 : 文档《JNI 入门示例》。 : 文档《mp3 拆分》。 : 文档《mp4 转 mp3》。 : 文档《使用 libmp3lame 实现高质量...",
      "keywords": [],
      "status": "document",
      "sha256": "f44710e63ddc361d88a5761435196d71fbbd8376242015721c8bef7b1d96e269"
    },
    {
      "id": "zh/50_cv/01.md",
      "title": "使用 Java 运行 YOLOv8 ONNX 模型进行目标检测",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/01.md",
      "source": "zh/50_cv/01.md",
      "description": "使用 Java 运行 YOLOv8 ONNX 模型进行目标检测 本文是一篇完整的入门文档。目标是让初学者能够理解项目结构、组件职责、关键实现细节，以及如何运行和调试。 1. 概览与目标 本示例展示如何使用 Java（OpenCV + ONNX Runtime）对 YOLOv8 ONNX 模型做单张或批量图片的目标检测。实现流程为： 读取图片并转换为 R...",
      "keywords": [],
      "status": "document",
      "sha256": "d3c9a2be637271dc585b4b7588db1c5ea5d0b9ab6958e06cdf7720bfb42012cf"
    },
    {
      "id": "zh/50_cv/02.md",
      "title": "tio-boot整合yolo",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/02.md",
      "source": "zh/50_cv/02.md",
      "description": "tio-boot整合yolo 下面是一篇从零开始给初学者看的完整使用文档。 目标：让把 tio-boot + ONNX Runtime + YOLOv8 跑起来，并通过 HTTP 上传图片得到检测结果。 一、项目介绍 这是一个基于 Java 的目标检测服务： 技术栈： 最终效果： 客户端上传图片 → 服务器检测 → 返回 JSON 识别框 二、最终接口...",
      "keywords": [],
      "status": "document",
      "sha256": "96122b5ff2a74d702a8bf6bfb471e8476fdb350f91c972494cf53de997ba277b"
    },
    {
      "id": "zh/50_cv/03.md",
      "title": "ONNX Runtime 推理说明",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/03.md",
      "source": "zh/50_cv/03.md",
      "description": "ONNX Runtime 推理说明 1. 为什么使用 ONNX Runtime 在训练阶段，目标检测模型通常使用 PyTorch / Ultralytics YOLOv8 完成。 但在生产环境（Java 服务端、Android 等）无法直接运行 Python 推理，因此需要： 将训练好的模型导出为 ONNX → 使用 ONNX Runtime 执行推理...",
      "keywords": [],
      "status": "document",
      "sha256": "abf15b2d33113c72ec031c1ac4300901e4e9a9155cd5f53118ec32a2b57548fe"
    },
    {
      "id": "zh/50_cv/04.md",
      "title": "Paddle Structure",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/04.md",
      "source": "zh/50_cv/04.md",
      "description": "Paddle Structure 一、背景与目标 下载模型 https://www.paddleocr.ai/latest/version3.x/pipeline_usage/PP-StructureV3.html#1-pp-structurev3 目标是将 PaddleOCR 中的文档布局分析模型： PP-DocLayout_plus-L 从 Pad...",
      "keywords": [],
      "status": "document",
      "sha256": "e72ab0291e9a814b39cde4889e116f603e620103902732cbe742a1f231a5e3a7"
    },
    {
      "id": "zh/50_cv/05.md",
      "title": "tio-boot 整合 Paddle Structure",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/05.md",
      "source": "zh/50_cv/05.md",
      "description": "tio-boot 整合 Paddle Structure 一、依赖 确保下面这些依赖： 、实体类 1、DetectionResult 如果你项目里已经有这个类，把 setBbox 修好即可。 2、PreprocessResult 三、PP-DocLayout 服务类 默认模型目录通过 EnvUtils.get(\"pp.doclayout.model_d...",
      "keywords": [],
      "status": "document",
      "sha256": "2d7f9e5de98a4cc271ca54ad2a28cbae95b7a9a2b78340f84c354e42c37743c2"
    },
    {
      "id": "zh/50_cv/06.md",
      "title": "tio-boot整合Paddle Structure 提取图片",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/06.md",
      "source": "zh/50_cv/06.md",
      "description": "tio-boot整合Paddle Structure 提取图片 新建实体类",
      "keywords": [],
      "status": "document",
      "sha256": "2d8e528b099f9232027a70ebfd9fb171b60f38e8ddcc64f7fca1eefd2af94e07"
    },
    {
      "id": "zh/50_cv/07.md",
      "title": "U2Net 图片去背景原理",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/07.md",
      "source": "zh/50_cv/07.md",
      "description": "U2Net 图片去背景原理 本文介绍 U2Net 用于图片去背景的基本原理，帮助理解后续 Java + ONNX Runtime 服务中的预处理、推理、mask 后处理和 PNG alpha 合成。 一、去背景本质 图片去背景不是简单地按颜色删除背景。真实图片中，主体和背景可能有相近颜色，例如： 白衣服和白墙 黑色头发和暗背景 商品阴影和桌面 半透明玻...",
      "keywords": [],
      "status": "document",
      "sha256": "b9ad7419ec990fe60058ffc7a23fd56e76ff767519cb84f071211f9f45ba4ecd"
    },
    {
      "id": "zh/50_cv/08.md",
      "title": "tio-boot 整合 U2Net 实现图片去背景",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/08.md",
      "source": "zh/50_cv/08.md",
      "description": "tio-boot 整合 U2Net 实现图片去背景 本文介绍如何使用 tio-boot + ONNX Runtime + U2Net 搭建一个 Java 版图片去背景 HTTP 服务。接口行为兼容常见的 rembg HTTP 上传方式： 响应直接返回透明背景 PNG： 一、功能说明 U2Net 是一种图像显著性目标分割模型。它不是按颜色简单删除背景，而...",
      "keywords": [],
      "status": "document",
      "sha256": "dbd2eb0d1d8e3026d6d114c430bb9186075214f60fddd73b5343eb8346c52be0"
    },
    {
      "id": "zh/50_cv/readme.md",
      "title": "50_cv",
      "language": "zh-CN",
      "chapter": "zh/50_cv",
      "url": "https://tio-boot.com/zh/50_cv/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/50_cv/readme.md",
      "source": "zh/50_cv/readme.md",
      "description": "50_cv 本目录包含 11 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用 Java 运行 YOLOv8 ONNX 模型进行目标检测》。 : 文档《tio-boot整合yolo》。 : 文档《ONNX Runtime 推理说明》。 : 文档《Paddle Structur...",
      "keywords": [],
      "status": "document",
      "sha256": "9970530130a991e819ed09953e8e5cb291b3cbfb0a23d012b919c86fb6c622f6"
    },
    {
      "id": "zh/51_telegram4j/01.md",
      "title": "数据库设计",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/01.md",
      "source": "zh/51_telegram4j/01.md",
      "description": "数据库设计 本章节介绍如何使用 tio-boot+大模型+telegram 开发一个翻译机器人,本节仅仅仅仅介绍数据库部分 openai 前往 openai 申请 key 过程略 telegram 创建 telegram 机器人 过程略 数据库 数据表设计 max_kb_sentence_tanslate_cache",
      "keywords": [],
      "status": "document",
      "sha256": "e5679a067200b2c42400e41ab6f7025bbe6c72adaa38115cf81f882dadfec15d"
    },
    {
      "id": "zh/51_telegram4j/02.md",
      "title": "基于 HTTP 协议开发 Telegram 翻译机器人",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/02.md",
      "source": "zh/51_telegram4j/02.md",
      "description": "基于 HTTP 协议开发 Telegram 翻译机器人 本文档旨在指导开发者如何使用 HTTP 协议开发一个具有翻译功能的 Telegram 机器人。文中详细描述了机器人的创建、Webhook 配置、翻译提示词编写、翻译服务的实现以及 Tio Boot 与 Telegram Bot 的整合，同时附有完整的 Java 代码示例，便于开发者参考与实践。 1...",
      "keywords": [],
      "status": "document",
      "sha256": "30295b8dc0c84e5f7847f479714e4175683b6b7ec91914f418992d42758ebe28"
    },
    {
      "id": "zh/51_telegram4j/03.md",
      "title": "基于 MTProto 协议开发 Telegram 翻译机器人",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/03.md",
      "source": "zh/51_telegram4j/03.md",
      "description": "基于 MTProto 协议开发 Telegram 翻译机器人 本文档旨在指导开发者使用 MTProto 协议开发一个具备翻译功能的 Telegram 机器人。通过配置 Telegram 应用、添加必要的依赖项，并结合提供的 Java 代码示例，您可以实现一个高效且功能丰富的翻译机器人。 简介 Telegram 机器人是一种基于 Telegram 平台的...",
      "keywords": [],
      "status": "document",
      "sha256": "8bd83ca146d830dd5879906eafab8c58de6e432aed9a389ee0b3998e7e4a88b5"
    },
    {
      "id": "zh/51_telegram4j/04.md",
      "title": "过滤旧消息",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/04.md",
      "source": "zh/51_telegram4j/04.md",
      "description": "过滤旧消息 在开发 Telegram 机器人时，机器人上线后可能会接收到大量旧消息。为了提升性能和用户体验，过滤这些旧消息是非常必要的。本文将详细介绍如何通过分析消息结构和实现代码来过滤机器人自身发送的旧消息。 问题描述 当 Telegram 机器人启动后，它可能会接收到大量历史消息。这些旧消息不仅会占用资源，还可能导致不必要的处理。因此，如何有效地过...",
      "keywords": [],
      "status": "document",
      "sha256": "98f4663c93f9ecf1132116d392500fd2d8e274c0f48dd26d7114e0061e976131"
    },
    {
      "id": "zh/51_telegram4j/05.md",
      "title": "保存机器人消息",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/05.md",
      "source": "zh/51_telegram4j/05.md",
      "description": "保存机器人消息 引言 在开发 Telegram 机器人时，经常需要对接收到的消息进行存储和处理，以便于后续的分析和响应。为了高效地实现这一需求，我们需要深入理解消息的数据结构，提取关键信息，并设计合理的数据库表结构。本文将详细介绍如何从 SendMessageEvent 中提取必要的数据，设计数据库表，并实现消息的存储。 1. SendMessageE...",
      "keywords": [],
      "status": "document",
      "sha256": "37250da63e080b839baf8d4da947a24d312fff69576a76e6526be218366c637a"
    },
    {
      "id": "zh/51_telegram4j/06.md",
      "title": "定时推送",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/06.md",
      "source": "zh/51_telegram4j/06.md",
      "description": "定时推送 在本节中，我们将指导您如何为 Telegram 翻译机器人添加定时推送功能。具体包括创建一个 Telegram 群组，并配置机器人定时向该群组推送指定的文章。通过这种方式，您可以实现定期分享内容，提高群组的活跃度和用户参与度。 步骤概述 创建一个 Telegram 群组 配置机器人加入群组 实现定时推送功能 测试与验证 步骤详解 1. 创建一...",
      "keywords": [],
      "status": "document",
      "sha256": "ba39a5f16f979a5ce847fa4da16b1dd267ac798ded92be25c7a9ac1e86503f98"
    },
    {
      "id": "zh/51_telegram4j/07.md",
      "title": "增加命令菜单",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/07.md",
      "source": "zh/51_telegram4j/07.md",
      "description": "增加命令菜单 引言 本文档旨在指导开发者如何为 Telegram 机器人添加命令菜单，以提升用户交互体验。通过详细的代码示例和解释，读者将学习如何使用 BotFather 或通过编程方式动态管理机器人命令菜单。本文还介绍了如何过滤命令消息以及封装路由，以实现更灵活和可维护的机器人功能。 增加命令菜单 为机器人增加命令菜单有两种主要方式： 通过 BotF...",
      "keywords": [],
      "status": "document",
      "sha256": "bc9b3dca2ad602dfa4e54e12efb77709458551119d734f530e8022256d926fe1"
    },
    {
      "id": "zh/51_telegram4j/08.md",
      "title": "使用 telegram-Client",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/08.md",
      "source": "zh/51_telegram4j/08.md",
      "description": "使用 telegram-Client telegram-client 是基于 telegram4j-core 开发的库，旨在简化 Telegram 消息的处理。本文将介绍如何使用 telegram-client 来处理消息和命令，包括依赖配置、事件适配器、命令处理以及客户端配置等内容。 添加依赖 首先，在项目的 pom.xml 文件中添加 telegr...",
      "keywords": [],
      "status": "document",
      "sha256": "cdf875e88c247091bbfa8c83c38c5e47469563be1613d33ed262d200e2d6796f"
    },
    {
      "id": "zh/51_telegram4j/09.md",
      "title": "使用自定义 StoreLayout",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/09.md",
      "source": "zh/51_telegram4j/09.md",
      "description": "使用自定义 StoreLayout 本指南详细介绍了如何通过使用自定义 StoreLayout 将 Telegram 频道的基本信息和详细信息存储到数据库中。通过此方法，可以减少对 Telegram 服务端的频繁调用，提高数据访问的效率和响应速度。 ChannelInfo 数据 ChannelInfo 主要包含两个核心属性： min：类型为 Immut...",
      "keywords": [],
      "status": "document",
      "sha256": "dd27b4a805a3686da1d59a91b5a542f97590c10483c4a720ed43e04e7730a12e"
    },
    {
      "id": "zh/51_telegram4j/10.md",
      "title": "延迟测试",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/10.md",
      "source": "zh/51_telegram4j/10.md",
      "description": "延迟测试 本文档详细介绍了一个用于测试服务器与 Telegram 服务器之间延迟的功能实现。该功能通过 Telegram 机器人发送消息并测量响应时间，以评估网络延迟情况。 功能概述 该功能通过 Telegram 机器人执行以下步骤： 发送初始消息：机器人向用户发送一条内容为 \"Wait a second...\" 的消息，提示用户等待。 编辑消息内容：...",
      "keywords": [],
      "status": "document",
      "sha256": "ea7b761493e76c16e21f5928e98657ae842a27c832c14282949d326a0a8e2817"
    },
    {
      "id": "zh/51_telegram4j/11.md",
      "title": "Reactor 错误处理",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/11.md",
      "source": "zh/51_telegram4j/11.md",
      "description": "Reactor 错误处理 在使用 Reactor 框架开发响应式应用时，错误处理是一个关键的环节。Reactor 提供了多种机制来捕获和处理操作符抛出的异常，包括全局钩子（Hooks）和局部钩子（Context）。本文将通过示例代码详细介绍如何实现和注册错误处理钩子，并解释实际运行时的日志输出。 引言 在响应式编程中，错误处理不仅仅是捕获异常，还涉及到...",
      "keywords": [],
      "status": "document",
      "sha256": "dedb0b36a9702b5f727627afb37ccdb0580c57a9598a7e9704307825900c40ca"
    },
    {
      "id": "zh/51_telegram4j/12.md",
      "title": "Telegram4J 常见错误处理指南",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/12.md",
      "source": "zh/51_telegram4j/12.md",
      "description": "Telegram4J 常见错误处理指南 在使用 Telegram4J 库与 Telegram 服务器进行交互时，开发者可能会遇到一些常见错误和警告。本文将详细分析这些问题的原因，并提供相应的解决方案，帮助您优化应用的稳定性和性能。 1. 处理 telegram4j.mtproto.RpcException: channels.getFullChanne...",
      "keywords": [],
      "status": "document",
      "sha256": "c732d8d0a34fc69d4131462e1d32d5b859b1be08d731b333cc0d93259c05c21d"
    },
    {
      "id": "zh/51_telegram4j/13.md",
      "title": "处理回调查询",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/13.md",
      "source": "zh/51_telegram4j/13.md",
      "description": "处理回调查询",
      "keywords": [],
      "status": "placeholder",
      "sha256": "2bc91ef8bb3e9d3127a9dfc596d4ad510f547f8ddfc4ec01a17ce757c0459ccb"
    },
    {
      "id": "zh/51_telegram4j/14.md",
      "title": "Reactor",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/14.md",
      "source": "zh/51_telegram4j/14.md",
      "description": "Reactor Reactor 是一个基于 Reactive Streams 规范的响应式编程库，广泛应用于 JVM 生态系统中（如 Spring WebFlux）。它提供了强大的工具来处理异步数据流和事件驱动的编程模型，帮助开发者构建高效、可扩展和弹性的应用程序。 Reactor 的核心概念 Publisher（发布者）： 负责生产数据并将其发布给订...",
      "keywords": [],
      "status": "document",
      "sha256": "084319efc9e962c8e7417da995b73110ac2e07cce6c22b006eb6992fa870ef99"
    },
    {
      "id": "zh/51_telegram4j/16.md",
      "title": "文档翻译",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/16.md",
      "source": "zh/51_telegram4j/16.md",
      "description": "文档翻译 image_to_text_prompt_en.txt image_to_text_prompt.txt",
      "keywords": [],
      "status": "document",
      "sha256": "2c338349b1dcdda1048a5e2d6a21e16b03d6d9ffffbbe4ec682665be4059c7a7"
    },
    {
      "id": "zh/51_telegram4j/17.md",
      "title": "使用 Tio-Boot 整合 tdlight",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/17.md",
      "source": "zh/51_telegram4j/17.md",
      "description": "使用 Tio-Boot 整合 tdlight 本文将详细介绍如何使用 Tio-Boot 框架整合 Telegram Bots。通过本文，您将学习如何配置项目依赖、设置必要的配置文件、编写核心代码以及进行测试。 简介 Tio-Boot 是一个基于 Java 的高性能网络框架，适用于快速构建各种网络应用。本文将指导您如何将 Telegram Bot 集成到...",
      "keywords": [],
      "status": "document",
      "sha256": "323ac71e6cf6c10f37bbe1f6984afaa387356dd0d6868cd340b338b44f26d217"
    },
    {
      "id": "zh/51_telegram4j/18.md",
      "title": "tio-boot 整合 TelegramBots",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/18.md",
      "source": "zh/51_telegram4j/18.md",
      "description": "tio-boot 整合 TelegramBots 本文档旨在指导开发者如何将 tio-boot 框架与 TelegramBots 库进行整合，采用 长轮询（Long Polling） 模式实现 Telegram Bot 的消息处理。通过本文，您将了解长轮询模式的基本原理，并通过一个简单的示例项目，掌握如何配置和运行一个基本的 Telegram Bot。...",
      "keywords": [],
      "status": "document",
      "sha256": "984a5ee422f5a96b4079ab444179fade6cb2a019052589c946e1cd8f8cc01704"
    },
    {
      "id": "zh/51_telegram4j/19.md",
      "title": "tio-boot 整合 Telegram-Bot-Utils",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/19.md",
      "source": "zh/51_telegram4j/19.md",
      "description": "tio-boot 整合 Telegram-Bot-Utils telegram-bot-utils 内置了 TelegramBots 依赖，使得构建 Telegram 机器人更加便捷。本篇文档将指导您如何使用 tio-boot 框架与 TelegramBots 库，创建一个简单的“回音机”功能的 Telegram 机器人。 telegram-bot-u...",
      "keywords": [],
      "status": "document",
      "sha256": "7a44bbf4cf294ed4cad5929b56e77863d789392dca926373e45b5bd95bf3baeb"
    },
    {
      "id": "zh/51_telegram4j/20.md",
      "title": "Telegram-Bot-Utils 使用指南",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/20.md",
      "source": "zh/51_telegram4j/20.md",
      "description": "Telegram-Bot-Utils 使用指南 Telegram-Bot-Utils 提供了丰富的工具类，本文将介绍其中的系列工具类的使用方法",
      "keywords": [],
      "status": "placeholder",
      "sha256": "a4f185cf39647467f8318b1d3932e7c70ec649991702e2290a73e4a6d3a1b07f"
    },
    {
      "id": "zh/51_telegram4j/readme.md",
      "title": "51_telegram4j",
      "language": "zh-CN",
      "chapter": "zh/51_telegram4j",
      "url": "https://tio-boot.com/zh/51_telegram4j/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/51_telegram4j/readme.md",
      "source": "zh/51_telegram4j/readme.md",
      "description": "51_telegram4j 本目录包含 23 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《数据库设计》。 : 文档《基于 HTTP 协议开发 Telegram 翻译机器人》。 : 文档《基于 MTProto 协议开发 Telegram 翻译机器人》。 : 文档《过滤旧消息》。...",
      "keywords": [],
      "status": "document",
      "sha256": "bfd85ba9d8d8f436c61bc1edc87ac2392646e0a53931ed3186a2ba52472e0ce2"
    },
    {
      "id": "zh/52_telegram-bots/01.md",
      "title": "TelegramBots 入门指南",
      "language": "zh-CN",
      "chapter": "zh/52_telegram-bots",
      "url": "https://tio-boot.com/zh/52_telegram-bots/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/52_telegram-bots/01.md",
      "source": "zh/52_telegram-bots/01.md",
      "description": "TelegramBots 入门指南 本文档详细介绍了如何使用 TelegramBots 库实现长轮询模式，进而接收和处理 Telegram Bot 发送的各种类型消息。内容涵盖了长轮询模式的工作原理、环境配置、核心代码实现示例以及 Telegram Bot API 返回的多种消息格式解析说明。在示例中的所有关键数据（如用户 ID、频道 ID、消息 ID...",
      "keywords": [],
      "status": "document",
      "sha256": "853f45df303cc035022b81d80a45a79d3cc6712404bcd1ced068beb3a1178e66"
    },
    {
      "id": "zh/52_telegram-bots/02.md",
      "title": "使用工具库 telegram-bot-base 开发翻译机器人",
      "language": "zh-CN",
      "chapter": "zh/52_telegram-bots",
      "url": "https://tio-boot.com/zh/52_telegram-bots/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/52_telegram-bots/02.md",
      "source": "zh/52_telegram-bots/02.md",
      "description": "使用工具库 telegram-bot-base 开发翻译机器人 Maven 坐标配置 在 Maven 工程中引入所需依赖。以下配置中除日志记录和 JSON 处理依赖外，核心依赖为 telegram-bot-base。请确保在 pom.xml 中添加如下依赖： 说明 其中 telegram-bot-base 是对 telegram-bots 的常用操作进...",
      "keywords": [],
      "status": "document",
      "sha256": "42efe6a3b8748af4813d926e39e0e7420da098799e45b6ff993789e7cdfc1701"
    },
    {
      "id": "zh/52_telegram-bots/readme.md",
      "title": "52_telegram-bots",
      "language": "zh-CN",
      "chapter": "zh/52_telegram-bots",
      "url": "https://tio-boot.com/zh/52_telegram-bots/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/52_telegram-bots/readme.md",
      "source": "zh/52_telegram-bots/readme.md",
      "description": "52_telegram-bots 本目录包含 5 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《TelegramBots 入门指南》。 : 文档《使用工具库 telegram-bot-base 开发翻译机器人》。 image-1.png: 图片资源，用于本目录文档配图或界面示意...",
      "keywords": [],
      "status": "document",
      "sha256": "28743acb79d08305d5511f6b4f8b33811e5270a69bee0be7672c99cfccc4a568"
    },
    {
      "id": "zh/53_LLM/01.md",
      "title": "简介",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/01.md",
      "source": "zh/53_LLM/01.md",
      "description": "简介 本章节主要介绍 java-openai（GitHub：litongjava/java-openai）库的核心能力、目录结构与统一调用方式，并展示如何将第三方大模型 API（OpenAI / Google / Anthropic / OpenRouter 等）以一致的请求与响应模型接入业务系统。 java-openai 的设计目标不是“只对接某一家...",
      "keywords": [],
      "status": "document",
      "sha256": "749bfe58fc1e4c9bf2637687e7818db44e5bb15b3db84dab3316a0c32ab6cf2f"
    },
    {
      "id": "zh/53_LLM/02.md",
      "title": "流式生成",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/02.md",
      "source": "zh/53_LLM/02.md",
      "description": "流式生成 在实际业务中，很多场景并不适合“等待完整结果一次性返回”，例如： 聊天机器人逐字输出，提升交互体验 长文本生成（写作、总结、代码生成），降低首 token 延迟 Web 前端使用 SSE / WebSocket 实时渲染内容 避免长时间阻塞请求导致的超时问题 java-openai 在统一抽象层之上，提供了跨平台一致的流式生成能力。业务侧只需...",
      "keywords": [],
      "status": "document",
      "sha256": "a9bdf1e29de1ce8798c92373aae211d8dfb1e7502d590ac6ef2506bd4aa67161"
    },
    {
      "id": "zh/53_LLM/03.md",
      "title": "图片多模态输入",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/03.md",
      "source": "zh/53_LLM/03.md",
      "description": "图片多模态输入 随着多模态模型的发展，越来越多的业务场景需要直接向大模型输入图片，并结合文本指令完成任务，例如： 图片文字识别（OCR） 图片内容理解与描述 图表、试题、合同、截图等内容解析 图片 + 文本混合推理（VLM / Vision-Language Model） java-openai 在统一聊天抽象的基础上，提供了统一的图片输入模型，使业务...",
      "keywords": [],
      "status": "document",
      "sha256": "ab295a87d96201b01f567840880d33f3dd0fed7562b229ffd02a4157d4873c55"
    },
    {
      "id": "zh/53_LLM/04.md",
      "title": "Google Gemini接入",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/04.md",
      "source": "zh/53_LLM/04.md",
      "description": "Google Gemini接入 协议自动转换 java-openai 的统一大模型调用能力 在真实的工程环境中，对接大模型的最大挑战从来不只是“调用 API”，而是跨平台协议差异带来的长期维护成本： OpenAI、Google Gemini、Anthropic Claude 的请求结构完全不同 system prompt、messages、roles、...",
      "keywords": [],
      "status": "document",
      "sha256": "8f732a9473efc7e982c3d5427de54bd2f1986a7ec3bfba736c5d06b8904265ee"
    },
    {
      "id": "zh/53_LLM/05.md",
      "title": "google Vertex AI 接入",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/05.md",
      "source": "zh/53_LLM/05.md",
      "description": "google Vertex AI 接入 service account 到 API Key 的转换与 java-openai 使用说明 在 Google Cloud 生态中，Vertex AI 默认更偏向使用 Service Account 进行认证。 但在当前 java-openai 的统一调用体系里，暂不直接支持 Service Account 认...",
      "keywords": [],
      "status": "document",
      "sha256": "ac9226eb96c891c7fefbbb54221465d7c63e5fb93c3e345ab5b051e2dd1ded2f"
    },
    {
      "id": "zh/53_LLM/06.md",
      "title": "请求记录",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/06.md",
      "source": "zh/53_LLM/06.md",
      "description": "请求记录 在多平台、多模型的生产系统里，稳定性问题往往不是“模型能力不行”，而是缺少一套可追溯、可统计、可告警的调用记录体系。java-openai 通过统一的 UniChatRequest / UniChatResponse 抽象，把模型协议差异隔离在适配层；而在业务层，建议再配套一层“请求记录”能力，把每一次调用的关键要素完整落库，形成可观测性闭环...",
      "keywords": [],
      "status": "document",
      "sha256": "6063a8add1a72b2df817ebe79574b40a398110e1105549522e0cec5676744d19"
    },
    {
      "id": "zh/53_LLM/07.md",
      "title": "限流和错误处理",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/07.md",
      "source": "zh/53_LLM/07.md",
      "description": "限流和错误处理 限流与错误处理：全局冷却、智能退避与可观测性闭环 在生产环境中，大模型调用失败的原因通常不是单点的“请求参数错误”，而是由限流、配额、网络波动、上游网关不稳定等因素叠加造成。尤其在并发场景下，如果缺少统一的限流与重试策略，系统很容易出现两类问题： 失败放大 多个并发请求同时遇到 429 后各自重试，进一步触发更严重的限流，形成雪崩。 排...",
      "keywords": [],
      "status": "document",
      "sha256": "bd46d5b1bcb64ddfcc711a7e858d2fae86dc8932f2fd0fb84848e30c7713376e"
    },
    {
      "id": "zh/53_LLM/11.md",
      "title": "增强检索（RAG）",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/11.md",
      "source": "zh/53_LLM/11.md",
      "description": "增强检索（RAG） 增强检索（RAG）是一种通过结合大语言模型（LLM）和外部文档资料的检索方法，用以提升问题回答的准确性和相关性。它的核心在于将传统信息检索与大语言模型的生成能力相结合，为用户提供更为丰富的答案。RAG 的实现需要依赖向量数据库、文档切片、向量化等多种技术手段。以下是对增强检索、向量数据库及其实现方法的详细说明。 什么是增强检索（RA...",
      "keywords": [],
      "status": "document",
      "sha256": "a7d34438ff591f4dc2d3ed5f8d01f3a7dc9b83358979dc6ead9c8b6c05318c55"
    },
    {
      "id": "zh/53_LLM/12.md",
      "title": "结构化数据检索",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/12.md",
      "source": "zh/53_LLM/12.md",
      "description": "结构化数据检索 什么是结构化数据检索 结构化数据检索与文档检索（非结构化数据）的检索思路相似。不同之处在于，结构化数据检索使用的是 text-to-SQL 技术。通过将用户的自然语言输入（文本）转换为数据库查询语言（SQL），从而实现数据检索。 结构化数据检索流程 数据获取: 一般通过爬虫的形式从互联网上爬取数据。 数据入库: 将爬取到的数据存入到数据...",
      "keywords": [],
      "status": "document",
      "sha256": "23422a88841f2c911a55ec83f7b421435ef3b0ba77c2e67398df92069e9d5f90"
    },
    {
      "id": "zh/53_LLM/13.md",
      "title": "AI 问答",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/13.md",
      "source": "zh/53_LLM/13.md",
      "description": "AI 问答 AI 问答 实现 AI 问答非常容易。可以通过笔者的 java-openai 库调用 OpenAI 的 Chat 接口，将用户的问题发送给 GPT 模型，GPT 模型会返回推理结果。 临时记忆 临时记忆的实现有多种方式，这里简单介绍两种方法： 数据库存储对话记录：将用户和大模型的对话记录存入数据库中。当需要对新的问题进行推理时，将新消息和历...",
      "keywords": [],
      "status": "document",
      "sha256": "5881fbd775fdd9271dc6b239ee70d993785ada9af848a65c9b4a3a482907217e"
    },
    {
      "id": "zh/53_LLM/14.md",
      "title": "连接代码执行器",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/14.md",
      "source": "zh/53_LLM/14.md",
      "description": "连接代码执行器 为什么要连接代码执行器 大语言模型(LLM)如 ChatGPT 在许多方面表现出色,但在进行精确计算和数据处理时可能存在局限性。然而,LLM 擅长编写代码。通过将 LLM 生成的代码交给专门的代码执行器运行,我们可以结合两者的优势:LLM 的代码生成能力和执行器的计算能力。 连接代码执行器的主要优势包括: 提高计算准确性 增强数据处理能...",
      "keywords": [],
      "status": "document",
      "sha256": "c8e12756eb4be35ab089b5ae5f19146443c68148061be03a477b2b57e7ac4a3b"
    },
    {
      "id": "zh/53_LLM/15.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/15.md",
      "source": "zh/53_LLM/15.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/53_LLM/16.md",
      "title": "模型编程能力评测",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/16.md",
      "source": "zh/53_LLM/16.md",
      "description": "模型编程能力评测 提示词",
      "keywords": [],
      "status": "document",
      "sha256": "1f73d4fef4f841a99647ade8bdb9b0a7afcab12f93b54ed45932a4060cce8a4f"
    },
    {
      "id": "zh/53_LLM/17.md",
      "title": "zh/53_LLM/17.md",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/17.md",
      "source": "zh/53_LLM/17.md",
      "description": "v=0 o=1001 2542 3964 IN IP4 192.168.3.241 s=Talk c=IN IP4 192.168.3.241 t=0 0 a=rtcp-xr:rcvr-rtt=all:10000 stat-summary=loss,dup,jitt,TTL voip-metrics m=audio 7076 RTP/AVP 96 97...",
      "keywords": [],
      "status": "document",
      "sha256": "badc7c28696846b98d4f307755eea9b0218acb5a444f90d0f99e93f5f535832f"
    },
    {
      "id": "zh/53_LLM/images/readme.md",
      "title": "images",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/images/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/images/readme.md",
      "source": "zh/53_LLM/images/readme.md",
      "description": "images 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 01.png: 图片资源，用于本目录文档配图或界面示意。",
      "keywords": [],
      "status": "document",
      "sha256": "f0ffaf9cb88835c02d2c39d009d5c12148a92ab9266b3da6541a06c3fb3cc8e6"
    },
    {
      "id": "zh/53_LLM/readme.md",
      "title": "53_LLM",
      "language": "zh-CN",
      "chapter": "zh/53_LLM",
      "url": "https://tio-boot.com/zh/53_LLM/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/53_LLM/readme.md",
      "source": "zh/53_LLM/readme.md",
      "description": "53_LLM 本目录包含 16 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《简介》。 : 文档《流式生成》。 : 文档《图片多模态输入》。 : 文档《Google Gemini接入》。 : 文档《google Vertex AI 接入》。 : 文档《请求记录》。 : 文档《限...",
      "keywords": [],
      "status": "document",
      "sha256": "0ce1fd89a4d238ae96145123ba2b190e7a99246e9895b8c61e9cf4b48381736e"
    },
    {
      "id": "zh/54_voice-agent/01.md",
      "title": "整合Gemini realtime模型",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/01.md",
      "source": "zh/54_voice-agent/01.md",
      "description": "整合Gemini realtime模型 本文档面向希望在 tio-boot 框架上快速接入 Gemini Live（支持实时语音问答与语音合成/转写）的 Java 开发者。内容包含：依赖与准备、整体架构、后端关键实现说明、前端示例、音频格式/协议、部署与调试建议、常见问题与扩展点。文档以已提供的实现为基础，补充说明与最佳实践，便于直接复制到工程中使用。...",
      "keywords": [],
      "status": "document",
      "sha256": "1c2324335da88ed0c67fc674c16b157932fb3b4599867790b5ca6e5ec9183b2f"
    },
    {
      "id": "zh/54_voice-agent/02.md",
      "title": "Voice Agent 前端接入接口文档",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/02.md",
      "source": "zh/54_voice-agent/02.md",
      "description": "Voice Agent 前端接入接口文档 本文档面向前端工程师，描述与后端实时语音代理的 WebSocket 协议、二进制音频格式、事件契约与接入示例。文档基于后端的桥接实现，目标是帮助前端同学快速对接并稳定播放 / 采集音频与显示转写与事件。 1 概要 连接方式：WebSocket（推荐使用 WSS） 默认路径示例：wss://{host}/api/...",
      "keywords": [],
      "status": "document",
      "sha256": "e31e5b09a2a90c9ea13fd00f060d758caa528a5771155595c6f5b13436c61a2f"
    },
    {
      "id": "zh/54_voice-agent/03.md",
      "title": "整合千问realtime模型",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/03.md",
      "source": "zh/54_voice-agent/03.md",
      "description": "整合千问realtime模型 tio-boot 集成 Qwen-Omni-Realtime（中国区，北京）DashScope Java SDK 接入完整文档 在 tio-boot 上 WebSocket 语音链路（浏览器 16k PCM 上行、服务端转发、浏览器播放 24k PCM 下行）的 Java 开发者， 1. 目标与整体架构 目标能力： 浏览器...",
      "keywords": [],
      "status": "document",
      "sha256": "7ce4d855b5a4fe92682b517bffbd2a8b1d4e087b1fb881c60f6e4577f174a7b5"
    },
    {
      "id": "zh/54_voice-agent/04.md",
      "title": "打断支持",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/04.md",
      "source": "zh/54_voice-agent/04.md",
      "description": "打断支持 一、标准时序图：正常一轮播放 这是最理想的链路。 正常场景下，前端应该看到的日志顺序 理想上类似这样： 注意两点： 1. assistant_turn_start 必须早于第一包音频 如果音频先到了，前端没有 activeAssistantTurnId，会直接丢弃。 2. assistant_turn_complete 不一定意味着“音频已经...",
      "keywords": [],
      "status": "document",
      "sha256": "614321fffd96c2be040722fc8fbfe1e53cfce36f50dc0dacee23cb06211d61c4"
    },
    {
      "id": "zh/54_voice-agent/05.md",
      "title": "主动介入",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/05.md",
      "source": "zh/54_voice-agent/05.md",
      "description": "主动介入 1. 目标 在实时语音场景中，用户有时会在官提问后长时间沉默。为了让对话自然推进，系统需要在用户长时间未开始回答时，主动由模型介入，引导用户继续作答、补充思路，或换一种更容易回答的方式继续交流。 本方案的目标是： 在用户长时间未开始回答时自动触发主动介入。 主动介入由模型自然生成，而不是后端写死固定提醒文案。 避免把“麦克风仍在持续上传静音音...",
      "keywords": [],
      "status": "document",
      "sha256": "6123dcc780e785999405c75431f16d1a687c33279e3c32c9fbed025e87a7129c"
    },
    {
      "id": "zh/54_voice-agent/06.md",
      "title": "eleven labs",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/06.md",
      "source": "zh/54_voice-agent/06.md",
      "description": "eleven labs",
      "keywords": [],
      "status": "placeholder",
      "sha256": "7d9cb9a60fd681c9b9a3c8e689d1185aaa5d611cc5f5c586ff101a78f740386e"
    },
    {
      "id": "zh/54_voice-agent/07.md",
      "title": "基于 tio-boot + ElevenLabs 构建实时语音 Agent（支持打断与主动介入）",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/07.md",
      "source": "zh/54_voice-agent/07.md",
      "description": "基于 tio-boot + ElevenLabs 构建实时语音 Agent（支持打断与主动介入） 这篇文章记录一次完整的实时语音 Agent 实践： 使用 tio-boot 作为后端 WebSocket 网关，对接 ElevenLabs Agents 实时语音能力，实现一个支持： 实时语音对话（浏览器麦克风） 中文语音输出 多轮对话 用户打断（inte...",
      "keywords": [],
      "status": "document",
      "sha256": "12425f3a3b2ea2ae12c23bf9a44d3434e867f032e0c92862b07835993454dc74"
    },
    {
      "id": "zh/54_voice-agent/readme.md",
      "title": "54_voice-agent",
      "language": "zh-CN",
      "chapter": "zh/54_voice-agent",
      "url": "https://tio-boot.com/zh/54_voice-agent/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/54_voice-agent/readme.md",
      "source": "zh/54_voice-agent/readme.md",
      "description": "54_voice-agent 本目录包含 8 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《整合Gemini realtime模型》。 : 文档《Voice Agent 前端接入接口文档》。 : 文档《整合千问realtime模型》。 : 文档《打断支持》。 : 文档《主动介入...",
      "keywords": [],
      "status": "document",
      "sha256": "b4b9a905b36599f8b772fa165f4de1c03090670790cff22c2803ff7059941058"
    },
    {
      "id": "zh/55_knowlege_base/00.md",
      "title": "学术论文",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/00.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/00.md",
      "source": "zh/55_knowlege_base/00.md",
      "description": "学术论文 题目：基于向量检索和大语言模型的智能知识库系统设计与实现 摘要 本文介绍了一种结合向量检索技术和大语言模型的智能知识库系统的设计与实现。该系统能够将非结构化的文档数据进行识别、拆分和向量化处理，通过语义相似度检索实现对用户问题的高效匹配，并利用大语言模型进行推理生成自然语言回答。系统包含用户管理、知识库管理、文档识别与拆分、片段存储与检索、问...",
      "keywords": [],
      "status": "document",
      "sha256": "ded8c19633a8c35a6e6ffa102294378d3d68f2410a5b05e940873cb664ca64e2"
    },
    {
      "id": "zh/55_knowlege_base/01.md",
      "title": "数据库设计",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/01.md",
      "source": "zh/55_knowlege_base/01.md",
      "description": "数据库设计 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。...",
      "keywords": [],
      "status": "document",
      "sha256": "c3358125527aaafaa20b4220f7e77d9292348f901de328bcf1a5e0734af56801"
    },
    {
      "id": "zh/55_knowlege_base/02.md",
      "title": "用户登录实现",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/02.md",
      "source": "zh/55_knowlege_base/02.md",
      "description": "用户登录实现 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理...",
      "keywords": [],
      "status": "document",
      "sha256": "292c0d8b72da51d7e19ef8b240d9768bcc579041898174ba0db9a648e5991865"
    },
    {
      "id": "zh/55_knowlege_base/03.md",
      "title": "模型管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/03.md",
      "source": "zh/55_knowlege_base/03.md",
      "description": "模型管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "131d53ffa23d7d13ecece794a7c1deb82916e646f5339d5f015b45bd82af9d2b"
    },
    {
      "id": "zh/55_knowlege_base/04.md",
      "title": "知识库管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/04.md",
      "source": "zh/55_knowlege_base/04.md",
      "description": "知识库管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。...",
      "keywords": [],
      "status": "document",
      "sha256": "55e6353ebaa5066379055d1af95bac15184b773d0d8d6efe74997a2388dc1a39"
    },
    {
      "id": "zh/55_knowlege_base/05.md",
      "title": "文档拆分",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/05.md",
      "source": "zh/55_knowlege_base/05.md",
      "description": "文档拆分 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "aafd08b03e00eebbe0c2634ff4ecb80d7cb14beafcf0c4bb419b20d9ebf96635"
    },
    {
      "id": "zh/55_knowlege_base/06.md",
      "title": "片段向量",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/06.md",
      "source": "zh/55_knowlege_base/06.md",
      "description": "片段向量 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "2d5b0d606d1260e5f5eb568cc19d4eb0c58ed8a8aead442824cd5dc30448370f"
    },
    {
      "id": "zh/55_knowlege_base/07.md",
      "title": "命中测试",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/07.md",
      "source": "zh/55_knowlege_base/07.md",
      "description": "命中测试 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "5519059f1aa5278cbf5ad4fe39ce6f9d7f2b0e462a9b0cbb9f02b877d7b5f4b3"
    },
    {
      "id": "zh/55_knowlege_base/08.md",
      "title": "文档管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/08.md",
      "source": "zh/55_knowlege_base/08.md",
      "description": "文档管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "f43021058d333300f6224eb165019ed17786da93133df4161442bd05ddc8d47a"
    },
    {
      "id": "zh/55_knowlege_base/09.md",
      "title": "片段管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/09.md",
      "source": "zh/55_knowlege_base/09.md",
      "description": "片段管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "0bbc508e5e7b4714db5052ba3d033fab9c181fe26b1b1b8be3bf58c358387739"
    },
    {
      "id": "zh/55_knowlege_base/10.md",
      "title": "问题管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/10.md",
      "source": "zh/55_knowlege_base/10.md",
      "description": "问题管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "94b8024e7cfc690870896493c7de23bec029c4a4e08a0cc5e4a8c637761158ee"
    },
    {
      "id": "zh/55_knowlege_base/11.md",
      "title": "应用管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/11.md",
      "source": "zh/55_knowlege_base/11.md",
      "description": "应用管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "dbee4ac6ccc07382691805ba19cc863801aaae7a08b7e5f4fec582b79859a864"
    },
    {
      "id": "zh/55_knowlege_base/12.md",
      "title": "向量检索",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/12.md",
      "source": "zh/55_knowlege_base/12.md",
      "description": "向量检索 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "1dcd10c9702ca3a8709c06ce30d9b96a67d3a44671b3805455a594f3dfc72186"
    },
    {
      "id": "zh/55_knowlege_base/13.md",
      "title": "推理问答",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/13.md",
      "source": "zh/55_knowlege_base/13.md",
      "description": "推理问答 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "035de3444ee19c9dd0676af609f3d6d16e61d68ecef915f0139c308df03ba792"
    },
    {
      "id": "zh/55_knowlege_base/14.md",
      "title": "问答模块",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/14.md",
      "source": "zh/55_knowlege_base/14.md",
      "description": "问答模块 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "c784fd99c0c9518ea50800d451f1d0d4536a28e3bf521e83aaa91879f944795b"
    },
    {
      "id": "zh/55_knowlege_base/15.md",
      "title": "统计分析",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/15.md",
      "source": "zh/55_knowlege_base/15.md",
      "description": "统计分析 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "2a357bb7c74d3ddc1f9598cedfa3e9fd30ec1b466ac9d7116468f7255d5be008"
    },
    {
      "id": "zh/55_knowlege_base/16.md",
      "title": "用户管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/16.md",
      "source": "zh/55_knowlege_base/16.md",
      "description": "用户管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "41069603a5e1aaefe7523d01ba30a241e041d8d365d8e30b6648242e9cba71fe"
    },
    {
      "id": "zh/55_knowlege_base/17.md",
      "title": "api 管理",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/17.md",
      "source": "zh/55_knowlege_base/17.md",
      "description": "api 管理 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理...",
      "keywords": [],
      "status": "document",
      "sha256": "bc4ba9d0e9cbfa857bd2c8e8f4042d503e1b8ee8a387f9cbcac96b3dc47ec7d4"
    },
    {
      "id": "zh/55_knowlege_base/18.md",
      "title": "存储文件到 S3",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/18.md",
      "source": "zh/55_knowlege_base/18.md",
      "description": "存储文件到 S3 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的...",
      "keywords": [],
      "status": "document",
      "sha256": "0560fcc842047b01fd76644927f03b40244ee7a4ced74b9d1ca7ab6abe52000a"
    },
    {
      "id": "zh/55_knowlege_base/19.md",
      "title": "文档解析优化",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/19.md",
      "source": "zh/55_knowlege_base/19.md",
      "description": "文档解析优化 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理...",
      "keywords": [],
      "status": "document",
      "sha256": "f3ec8becac920ec900135333d1f4e26c62860e2500d7251d177ac967f19567da"
    },
    {
      "id": "zh/55_knowlege_base/20.md",
      "title": "片段汇总",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/20.md",
      "source": "zh/55_knowlege_base/20.md",
      "description": "片段汇总 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "aa3cf8a5dd810b9383d9bd4e51f73b2c545f9c5b8be97c62376ecaf376d77f02"
    },
    {
      "id": "zh/55_knowlege_base/21.md",
      "title": "段落分块与检索",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/21.md",
      "source": "zh/55_knowlege_base/21.md",
      "description": "段落分块与检索 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处...",
      "keywords": [],
      "status": "document",
      "sha256": "02a948e09017da1bc6f1e91189661acabceb9e31b35a5e0b9c9315a42465fa78"
    },
    {
      "id": "zh/55_knowlege_base/22.md",
      "title": "多文档解析",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/22.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/22.md",
      "source": "zh/55_knowlege_base/22.md",
      "description": "多文档解析 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。...",
      "keywords": [],
      "status": "document",
      "sha256": "7ff732971f530b1978f951976a594970f721269decae26ea1ee61c51c1d3ebc5"
    },
    {
      "id": "zh/55_knowlege_base/23.md",
      "title": "对话日志",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/23.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/23.md",
      "source": "zh/55_knowlege_base/23.md",
      "description": "对话日志 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "ea880d36a42d8030007113a3dc1d329cb364736a9a1bf7ece4a6cdb09023f7d5"
    },
    {
      "id": "zh/55_knowlege_base/24.md",
      "title": "检索性能优化",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/24.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/24.md",
      "source": "zh/55_knowlege_base/24.md",
      "description": "检索性能优化 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理...",
      "keywords": [],
      "status": "document",
      "sha256": "b2b7c775c6fa5938255af35eb291d34ec658bb6f214549ee82fa3f3da189f71f"
    },
    {
      "id": "zh/55_knowlege_base/25.md",
      "title": "Milvus",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/25.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/25.md",
      "source": "zh/55_knowlege_base/25.md",
      "description": "Milvus 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理...",
      "keywords": [],
      "status": "document",
      "sha256": "e248ef7186b29807e9b52363c9376b2e1dc1112c7b317e0a2e852197d5bc857b"
    },
    {
      "id": "zh/55_knowlege_base/26.md",
      "title": "文档解析方案和费用对比",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/26.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/26.md",
      "source": "zh/55_knowlege_base/26.md",
      "description": "文档解析方案和费用对比 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类...",
      "keywords": [],
      "status": "document",
      "sha256": "39ace815d545fcf4de6889e700a541a25d7c0621061247c2314f14f398582418"
    },
    {
      "id": "zh/55_knowlege_base/27.md",
      "title": "离线运行向量模型",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/27.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/27.md",
      "source": "zh/55_knowlege_base/27.md",
      "description": "离线运行向量模型 本章节介绍如何离线运行向量模型 jina-embeddings，并编写一个 HTTP API 服务，用于使用 Jina-embeddings-v3 模型生成文本嵌入。该服务基于 ONNX Runtime 和 Robyn 框架构建，兼容 OpenAI embedding 数据格式，并支持在 CPU 上运行。 依赖 Python: 3.8...",
      "keywords": [],
      "status": "document",
      "sha256": "cd6eeb98b7c41fd0f53b94a4b83f1dfbf4a0f3fd9b9d77ab53efdec65110c5d1"
    },
    {
      "id": "zh/55_knowlege_base/30.md",
      "title": "爬取网页数据",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/30.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/30.md",
      "source": "zh/55_knowlege_base/30.md",
      "description": "爬取网页数据 项目目标 本项目旨在构建一个功能完备的 RAG（Retrieval-Augmented Generation）系统，主要目标包括： 知识库管理：支持创建、更新和删除知识库，便于用户高效维护内容。 文档处理：包括文档的拆分、片段的向量化处理，以提升检索效率和准确性。 问答系统：提供高效的向量检索和实时生成回答的能力，支持复杂汇总类问题的处理...",
      "keywords": [],
      "status": "document",
      "sha256": "c1c02502aacd3a48789392f4406ec644a01383bbfd0a45ca06b1cf31964b0ea0"
    },
    {
      "id": "zh/55_knowlege_base/readme.md",
      "title": "55_knowlege_base",
      "language": "zh-CN",
      "chapter": "zh/55_knowlege_base",
      "url": "https://tio-boot.com/zh/55_knowlege_base/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/55_knowlege_base/readme.md",
      "source": "zh/55_knowlege_base/readme.md",
      "description": "55_knowlege_base 本目录包含 37 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《学术论文》。 : 文档《数据库设计》。 : 文档《用户登录实现》。 : 文档《模型管理》。 : 文档《知识库管理》。 : 文档《文档拆分》。 : 文档《片段向量》。 : 文档《命中...",
      "keywords": [],
      "status": "document",
      "sha256": "4e9ef55738e86ce4ea81762ae63c63694a40a1b75d6cfbb2e9739d6fb80cea16"
    },
    {
      "id": "zh/56_ai_agent/01.md",
      "title": "数据库设计",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/01.md",
      "source": "zh/56_ai_agent/01.md",
      "description": "数据库设计 本章节将详细介绍如何使用 tio-boot 系统开发一个面向校园领域的搜索问答系统。该系统旨在为用户提供高效、智能的问答服务，涵盖以下主要功能： 功能概述 推荐问题：根据用户输入智能推荐相关问题，提升用户体验。 会话管理：有效管理用户与系统之间的对话会话，确保对话的连贯性。 历史记录管理：记录并管理用户的历史查询，便于后续参考和分析。 意图...",
      "keywords": [],
      "status": "document",
      "sha256": "3715f226c7ed7803653fba0519bb94bfb101e9ed67f7f527fb30d05c3317cefd"
    },
    {
      "id": "zh/56_ai_agent/02.md",
      "title": "示例问题管理",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/02.md",
      "source": "zh/56_ai_agent/02.md",
      "description": "示例问题管理 本文档详细介绍了校园领域搜索问答系统中的问题示例功能模块的设计与实现。该模块旨在通过智能推荐相关问题，提升用户的查询体验和系统的响应效率。本文将涵盖接口设计、数据库表结构以及相关的 Java 实现代码。 功能概述 问题示例模块主要负责根据用户的查询上下文，智能地推荐相关的问题，帮助用户快速找到所需信息。具体功能包括： 智能推荐：根据用户当...",
      "keywords": [],
      "status": "document",
      "sha256": "de4aa6d81f4da347fb5cb5358f41063a338418442e01120717ad363b01f0f45d"
    },
    {
      "id": "zh/56_ai_agent/03.md",
      "title": "会话管理",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/03.md",
      "source": "zh/56_ai_agent/03.md",
      "description": "会话管理 本文档详细介绍了校园领域搜索问答系统中的会话管理功能模块的设计与实现。该模块旨在有效管理用户与系统之间的对话会话，确保对话的连贯性和一致性。本文将涵盖接口设计、数据库表结构、控制器实现以及服务层实现。 功能概述 会话管理模块主要负责以下功能： 创建会话：允许用户创建新的对话会话。 列出会话：提供用户所有对话会话的列表，支持分页查询。 设置会话...",
      "keywords": [],
      "status": "document",
      "sha256": "7d75f46fbf670642a02f081ec09be7deef9ccc12118a2d4d4e1b05dfd9028c47"
    },
    {
      "id": "zh/56_ai_agent/04.md",
      "title": "历史记录",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/04.md",
      "source": "zh/56_ai_agent/04.md",
      "description": "历史记录 本文档详细介绍了校园领域搜索问答系统中的历史记录管理功能模块的设计与实现。该模块旨在记录和管理用户的对话历史，支持用户查看历史记录和对特定对话内容进行点赞操作。本文将涵盖接口设计、数据库表结构、控制器实现以及服务层实现。 功能概述 历史记录管理模块主要负责以下功能： 查看历史记录：允许用户查看特定会话的对话历史，支持分页查询。 点赞功能：用户...",
      "keywords": [],
      "status": "document",
      "sha256": "8e71b43c1fa04ab8f79365bca3e24324a620355b9ee146340dacb47f96572cbd"
    },
    {
      "id": "zh/56_ai_agent/05.md",
      "title": "Perplexity API",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/05.md",
      "source": "zh/56_ai_agent/05.md",
      "description": "Perplexity API 本文档详细介绍了如何使用 Perplexity API 进行聊天完成请求，并提供了 Java 示例代码，帮助开发者快速集成该 API。 概述 Perplexity API 提供了强大的搜索 和 推理 生成能力。本文将展示如何构建请求、解析响应以及在 Java 项目中调用 Perplexity API。 请求示例 以下是使用...",
      "keywords": [],
      "status": "document",
      "sha256": "8e2697f252a8b5854c385fc500537970f6e7ff1f0b61f6990daf95371e7bb56d"
    },
    {
      "id": "zh/56_ai_agent/06.md",
      "title": "意图识别",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/06.md",
      "source": "zh/56_ai_agent/06.md",
      "description": "意图识别 本文档详细介绍了校园领域搜索问答系统中的意图识别与提示词生成功能模块的设计与实现。该模块旨在通过自然语言处理技术识别用户的查询意图，并基于意图生成相应的提示词，提升系统的响应准确性和用户体验。本文将涵盖功能概述、接口设计、数据库表结构、控制器实现以及服务层实现。 功能概述 意图识别与提示词生成模块主要负责以下功能： 意图识别：通过分析用户输入...",
      "keywords": [],
      "status": "document",
      "sha256": "a72151439e38d0cacfcd540f9ed345c988875118f27d228519a897e9b2bbded9"
    },
    {
      "id": "zh/56_ai_agent/07.md",
      "title": "智能问答",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/07.md",
      "source": "zh/56_ai_agent/07.md",
      "description": "智能问答 本文档详细介绍了校园领域搜索问答系统中的智能问答功能模块的设计与实现。该模块旨在通过接收用户提问、校验会话合法性、问题重写、生成提示词并交由大模型推理，管理历史记录以及控制推理过程，提供高效、精准的智能问答服务。本文将涵盖功能概述、接口设计、控制器实现、服务层实现以及代码优化。 功能概述 智能问答模块主要负责以下功能： 接收用户提问：通过 A...",
      "keywords": [],
      "status": "document",
      "sha256": "98964f0f7f0b9750438670221ace92bd8f2ef67050eb37c9cd5dcfa3d4c4e906"
    },
    {
      "id": "zh/56_ai_agent/08.md",
      "title": "文件上传与解析文档",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/08.md",
      "source": "zh/56_ai_agent/08.md",
      "description": "文件上传与解析文档 本文档描述了如何通过文件上传接口实现文件的去重检测、上传以及内容解析，供大模型文问答系统作为上下文信息使用。内容主要分为以下几个部分： API 设计：包括文件上传前的去重检测接口以及文件上传接口的说明。 数据库设计：存储上传文件基本信息的数据库表设计。 文件解析实现：针对不同类型文件的解析实现代码（PDF、Word、Excel、PP...",
      "keywords": [],
      "status": "document",
      "sha256": "adc0d30c74c1d076b823300b3b3c8bfdb216b8faeed170b7aad9d58c926d9605"
    },
    {
      "id": "zh/56_ai_agent/09.md",
      "title": "翻译",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/09.md",
      "source": "zh/56_ai_agent/09.md",
      "description": "翻译",
      "keywords": [],
      "status": "placeholder",
      "sha256": "620cb1a47cf877379feed3cc634956babb26cb8fb0cdceb69cf8c427cb0d7c6c"
    },
    {
      "id": "zh/56_ai_agent/10.md",
      "title": "名人搜索功能实现",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/10.md",
      "source": "zh/56_ai_agent/10.md",
      "description": "名人搜索功能实现 本模块主要用于根据用户输入的关键字（如姓名、机构等），调用搜索引擎 API 获取相关信息（例如 LinkedIn、社交媒体、视频等），并通过大语言模型对数据进行整理、润色与摘要，最终返回格式化的 Markdown 输出。整个流程大致包括以下步骤： 提示词示例：定义了对用户输入的提示，指导后续信息整理和输出格式（例如生成个人简介、学术信...",
      "keywords": [],
      "status": "document",
      "sha256": "1ab307aa0c3256f715fd9db09d9481d9041caa205e6e8d4e1c871d0f1cfe11bb"
    },
    {
      "id": "zh/56_ai_agent/11.md",
      "title": "Ai studio gemini youbue 问答使用说明",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/11.md",
      "source": "zh/56_ai_agent/11.md",
      "description": "Ai studio gemini youbue 问答使用说明 生产环境不推荐使用,因为延迟太高了,每次推理的延迟都在 40s 左右 本文档介绍了 youbue 功能的工作原理及消息交互格式。该功能支持前端向后端提交包含 YouTube 视频链接和用户消息的请求，后端会将消息转换为大模型所需的消息格式并发送。以下详细描述了首次消息发送及后续追问的消息格式...",
      "keywords": [],
      "status": "document",
      "sha256": "8315d3738685223332b3138077f2a631d7ab4d2335481f5e8c8dd389797ee5b4"
    },
    {
      "id": "zh/56_ai_agent/12.md",
      "title": "自建 YouTube 字幕问答系统",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/12.md",
      "source": "zh/56_ai_agent/12.md",
      "description": "自建 YouTube 字幕问答系统 由于直接使用 Google Gemini YouTube 接口存在较高的延迟问题，因此本文介绍了一套自建 YouTube 视频问答系统的方案，通过调用第三方 supadata API 获取视频字幕，并将字幕进行存储与展示，实现视频问答功能。下面将从获取字幕、Java 代码实现、业务流程解析以及已知问题几个方面进行介绍...",
      "keywords": [],
      "status": "document",
      "sha256": "7cee16c88e4a1ddfdf137f7f80d8c2ea68adbb1e2e114f7738a49aa9dd82fc08"
    },
    {
      "id": "zh/56_ai_agent/13.md",
      "title": "自建 获取 youtube 字幕服务",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/13.md",
      "source": "zh/56_ai_agent/13.md",
      "description": "自建 获取 youtube 字幕服务 https://github.com/litongjava/yt-dlp-java",
      "keywords": [],
      "status": "placeholder",
      "sha256": "e1917f0e0987ebcba76fad65defbdbe6f37486f947ec5e77b68487af5e29eb31"
    },
    {
      "id": "zh/56_ai_agent/14.md",
      "title": "使用 OpenAI ASR 实现语音识别接口（Java 后端示例）",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/14.md",
      "source": "zh/56_ai_agent/14.md",
      "description": "使用 OpenAI ASR 实现语音识别接口（Java 后端示例） 本文介绍如何在 Java 后端快速实现一个“上传音频文件 → 调用 OpenAI ASR（Whisper）→ 返回识别文本”的接口，并加入缓存机制避免重复识别，降低成本与延迟。 整体流程可以理解为四步： 客户端通过 POST /api/v1/asr 上传音频文件（表单字段名为 file...",
      "keywords": [],
      "status": "document",
      "sha256": "146751345e1d24035a72aa1711016d2e5ec4dbbb5ebb17d8f002f6407fd74f48"
    },
    {
      "id": "zh/56_ai_agent/15.md",
      "title": "定向搜索",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/15.md",
      "source": "zh/56_ai_agent/15.md",
      "description": "定向搜索",
      "keywords": [],
      "status": "placeholder",
      "sha256": "3e9942ecc1048717054ea97d95ade1c6745f6cefd8116e1b8ce0ca0e000cb18e"
    },
    {
      "id": "zh/56_ai_agent/16.md",
      "title": "16",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/16.md",
      "source": "zh/56_ai_agent/16.md",
      "description": "16",
      "keywords": [],
      "status": "placeholder",
      "sha256": "58efe4f15a6b6ca7043ac01099e79c6d1239bb1c7fa57c4f78203a0530f84794"
    },
    {
      "id": "zh/56_ai_agent/17.md",
      "title": "17",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/17.md",
      "source": "zh/56_ai_agent/17.md",
      "description": "17",
      "keywords": [],
      "status": "placeholder",
      "sha256": "ad6af1fb98402a66057aa99fbcb3d1bd75f0598870a025401eb5ee45d9eff13d"
    },
    {
      "id": "zh/56_ai_agent/18.md",
      "title": "18",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/18.md",
      "source": "zh/56_ai_agent/18.md",
      "description": "18",
      "keywords": [],
      "status": "placeholder",
      "sha256": "d12bf024ce306e34eb848a5ead9726db8a869ee4ac5e22a44abb21ed278c0f0d"
    },
    {
      "id": "zh/56_ai_agent/19.md",
      "title": "在 tio-boot 应用中整合 ai-agent",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/19.md",
      "source": "zh/56_ai_agent/19.md",
      "description": "在 tio-boot 应用中整合 ai-agent 本文档将介绍如何在其他 tio-boot 应用中集成 ai-agent 组件，以便复用其强大的 AI 聊天及对话能力。以下内容包含 Maven 依赖的添加、路由配置以及接口调用示例。 1. 添加 Maven 依赖 在项目的 pom.xml 文件中添加如下依赖，从 Maven 仓库中引入 ai-agen...",
      "keywords": [],
      "status": "document",
      "sha256": "713a3e865f4bac93cfa76f4d3829919884a7c03b3a7439cdd99523505b9b39ca"
    },
    {
      "id": "zh/56_ai_agent/20.md",
      "title": "接口文档",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/20.md",
      "source": "zh/56_ai_agent/20.md",
      "description": "接口文档 本文档详细介绍了各类接口的使用说明，包括请求方式、接口路径、请求参数及响应格式。开发者可根据本说明文档快速对接接口，完成推荐问题、会话管理、推理服务、点赞操作及历史记录等功能的集成，同时还提供了通用能力接口（rewrite、file、tutor、youtube、search、advise、celebrity）的说明。 接口概览 获取推荐问题接...",
      "keywords": [],
      "status": "document",
      "sha256": "a0e6be619f1a25e14a1dbfe3bb7502c45bf7058f004d11483e7f65917a7caa72"
    },
    {
      "id": "zh/56_ai_agent/21.md",
      "title": "自定义 ChatAskService",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/21.md",
      "source": "zh/56_ai_agent/21.md",
      "description": "自定义 ChatAskService 本文将系统介绍如何在自定义 ChatAskService 的过程中，结合 LlmChatHistoryService 实现一套完整的对话业务逻辑，包括历史消息管理、上下文拼接、流式响应以及会话持久化等能力。整篇内容聚焦设计思路与实现流程，不涉及具体代码细节。 精简 直接发送消息 Alt text 问答示例 一、整体...",
      "keywords": [],
      "status": "document",
      "sha256": "d2b86c6af381bab4fe0a5625dc3146ff8a9cacc4f39e2fe3bb5372e4e22a35d9"
    },
    {
      "id": "zh/56_ai_agent/readme.md",
      "title": "56_ai_agent",
      "language": "zh-CN",
      "chapter": "zh/56_ai_agent",
      "url": "https://tio-boot.com/zh/56_ai_agent/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/56_ai_agent/readme.md",
      "source": "zh/56_ai_agent/readme.md",
      "description": "56_ai_agent 本目录包含 24 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《数据库设计》。 : 文档《示例问题管理》。 : 文档《会话管理》。 : 文档《历史记录》。 : 文档《Perplexity API》。 : 文档《意图识别》。 : 文档《智能问答》。 : 文...",
      "keywords": [],
      "status": "document",
      "sha256": "974053ac3ca6761022466bb32a4c069f9cfccd7bf57e6a48950d46ed491d8f45"
    },
    {
      "id": "zh/57_ai-search/01.md",
      "title": "ai-search 项目简介",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/01.md",
      "source": "zh/57_ai-search/01.md",
      "description": "ai-search 项目简介 本文档介绍了一个 AI 搜索项目的设计与实现方案，前端采用 Next.js 框架，后端基于 Java 开发。项目旨在通过整合先进的检索技术和大模型能力，提升搜索问答系统的准确度和用户体验。下文详细阐述了项目的整体流程、关键技术以及优化策略。 AI Search 流程图 1. AI 搜索的标准流程 AI 搜索一般可分为两个主...",
      "keywords": [],
      "status": "document",
      "sha256": "d88f401edbe5c8b00f824a2ff236cbfacb762f6b8cfcc2a6ab8b6be223b637fe"
    },
    {
      "id": "zh/57_ai-search/02.md",
      "title": "ai-search 数据库文档",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/02.md",
      "source": "zh/57_ai-search/02.md",
      "description": "ai-search 数据库文档 本节提供了用于存储聊天历史记录的 PostgreSQL 数据库表的设计，包括表结构、字段说明及关系定义。 表设计 表结构 max_search_chat_session 表 存储所有的聊天记录的基本信息。 max_search_chat_message 表 存储每个聊天中的消息内容及相关信息。 files 表 复用 ti...",
      "keywords": [],
      "status": "document",
      "sha256": "6079b738e0bd649e8a73668997f274684a7d98ca546b4ccdce3d5b76ac6dd927"
    },
    {
      "id": "zh/57_ai-search/03.md",
      "title": "ai-search SearxNG 搜索引擎",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/03.md",
      "source": "zh/57_ai-search/03.md",
      "description": "ai-search SearxNG 搜索引擎 SearxNG 是一个强大且注重隐私的元搜索引擎，能够汇总来自多个搜索引擎的结果而不跟踪用户活动。本指南将引导您通过 Docker 部署 SearxNG，介绍其可用的 API，并提供如何有效使用这一强大工具的见解。 SearxNG 简介 SearxNG 是一个开源的自托管元搜索引擎，强调用户隐私和灵活性。与...",
      "keywords": [],
      "status": "document",
      "sha256": "d29787b50776337aa162bd259009f98bb55f11957a8865a151bbd3206bc236db"
    },
    {
      "id": "zh/57_ai-search/04.md",
      "title": "ai-search Jina Reader API",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/04.md",
      "source": "zh/57_ai-search/04.md",
      "description": "ai-search Jina Reader API 在搜索引擎返回的结果中，通常只包含网页的标题（title）、描述（description）和 URL，而不包含网页的实际内容。为了让大模型能更好地回答用户的问题，我们需要获取网页的完整内容。Jina Reader API 正是为此目的而设计的，它可以帮助方便地读取网页的详细内容。 快速开始 请求示例 ...",
      "keywords": [],
      "status": "document",
      "sha256": "e47bd2ad2ba9b6dce218173cff783d7ba8ca4810bf06d891b1f0c01e0f6f793e"
    },
    {
      "id": "zh/57_ai-search/05.md",
      "title": "ai-search Jina Search API",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/05.md",
      "source": "zh/57_ai-search/05.md",
      "description": "ai-search Jina Search API Jina Search API 将搜索引擎和内容转换功能相结合，不仅可以搜索相关网页，还能将返回的网页内容进行转换和整合，便于后续处理和大模型理解。 功能概述 搜索引擎： 根据用户输入的查询条件，搜索相关网页。 内容转换： 将搜索到的网页内容进行转换，返回易于阅读和分析的数据格式。 请求示例 可以使用...",
      "keywords": [],
      "status": "document",
      "sha256": "749b2716bd0b26004c0bda614a2daea34682ed584d6c3f4993ba7784940e7f2b"
    },
    {
      "id": "zh/57_ai-search/06.md",
      "title": "ai-search 搜索、重排与读取内容",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/06.md",
      "source": "zh/57_ai-search/06.md",
      "description": "ai-search 搜索、重排与读取内容 本文档详细介绍了一个基于 Java 的搜索与网页爬取系统的实现过程。该系统由四个主要模块组成： 搜索请求处理器 搜索服务 AI 重排服务 Playwright 页面爬取服务 获取 Jina Reader API 内容读取 系统整体流程为： 用户发送搜索请求。 系统调用搜索引擎 API 获取初步搜索结果。 利用大...",
      "keywords": [],
      "status": "document",
      "sha256": "bd60d194c85fac326b8e9c333cef19c40e6112d9a2b8a2a7f1e16c78257d106f"
    },
    {
      "id": "zh/57_ai-search/07.md",
      "title": "ai-search PDF 文件处理",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/07.md",
      "source": "zh/57_ai-search/07.md",
      "description": "ai-search PDF 文件处理 本篇文档介绍了如何利用 Apache PDFBox 库对 PDF 文件进行简单处理，即从 PDF 字节数据中提取文本内容。本文主要包括依赖配置、核心代码实现以及使用示例，适用于需要快速解析 PDF 文档内容的场景。 1. 项目依赖 为了使用 PDFBox 进行 PDF 文件处理，需要在 Maven 项目的 pom....",
      "keywords": [],
      "status": "document",
      "sha256": "b1259bcf2485533fd4407f3e95d258862963494e911e803343beec739cc0f63c"
    },
    {
      "id": "zh/57_ai-search/08.md",
      "title": "ai-search 推理问答",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/08.md",
      "source": "zh/57_ai-search/08.md",
      "description": "ai-search 推理问答 在构建搜索系统时，往往需要将检索到的文本内容与特定的提示词（Prompt）一并提交给大模型，以生成更高质量的回复。本项目在完成以下功能后，希望进一步实现将检索到的网页内容（以 Markdown 格式）+ 自定义的提示词，发送给大模型进行推理并返回结果给用户： AI 搜索项目简介 数据库设计 SearxNG Jina Rea...",
      "keywords": [],
      "status": "document",
      "sha256": "4fd3a82938bd0e36d175e2b1cab6121379c7d06c06bb659d034f226aae5e5b61"
    },
    {
      "id": "zh/57_ai-search/09.md",
      "title": "Google Custom Search JSON API",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/09.md",
      "source": "zh/57_ai-search/09.md",
      "description": "Google Custom Search JSON API 本篇文档旨在介绍如何利用 Google Custom Search JSON API 搜索特定网站。文档内容包括如何创建和配置可编程搜索引擎（Custom Search Engine，简称 CSE）、如何获取 API Key、如何通过 RESTful 接口发送请求，以及如何在前端页面中调用 A...",
      "keywords": [],
      "status": "document",
      "sha256": "b6be9b77459ad704af832c995cfb3e35b4c38f292dc32b78dbc28d50ee8265bd"
    },
    {
      "id": "zh/57_ai-search/10.md",
      "title": "ai-search 意图识别",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/10.md",
      "source": "zh/57_ai-search/10.md",
      "description": "ai-search 意图识别 意图识别一共 要进行两次,问题重写前识别一次,问题重写后识别一次 意图识别的原理和需要准备的数据 引言 意图识别（Intent Recognition）是自然语言处理（NLP）中的一个重要任务。它的目标是理解用户的输入并确定其背后的意图。这在聊天机器人、虚拟助理和各种人机交互系统中尤为重要。为了实现意图识别，通常需要准备一...",
      "keywords": [],
      "status": "document",
      "sha256": "9a38f3d1190e059e2da3f28e811bfe703bdc2cc6050005a16b9050f4a9d57d43"
    },
    {
      "id": "zh/57_ai-search/11.md",
      "title": "ai-search 问题重写",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/11.md",
      "source": "zh/57_ai-search/11.md",
      "description": "ai-search 问题重写 什么是问题重写 问题重写：提升对话式 AI 的上下文理解能力和增加检索结果的准确性 在构建对话式 AI 系统时，一个常见的挑战是如何准确理解用户的后续问题。这些问题通常依赖于之前的对话上下文，如果直接将其用于信息检索或进一步处理，可能会导致不准确或不相关的回答。为了解决这个问题，我们可以使用一种称为\"问题重写\"的技术。 什...",
      "keywords": [],
      "status": "document",
      "sha256": "0282d1360a0a3ce7314ef37fdaa41017747fff2431f08b2b3da9290c9c65d02e"
    },
    {
      "id": "zh/57_ai-search/12.md",
      "title": "ai-search 系统 API 接口 WebSocket 版本",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/12.md",
      "source": "zh/57_ai-search/12.md",
      "description": "ai-search 系统 API 接口 WebSocket 版本 本文档详细描述了 AI+搜索的推理接口 目录 获取模型信息 获取配置信息 搜索与推理 WebSocket 连接 发送初始信号 发送消息 接收服务器响应 消息历史记录 生成建议问题 获取网站 Logo 获取模型信息 描述 获取当前 AI 模型的相关信息，包括聊天模型提供者和嵌入模型提供者及...",
      "keywords": [],
      "status": "document",
      "sha256": "ec30f05e470a66786f6cc1e5b299cfdd5970ec52cc7ed2c92b3618a8a7465250"
    },
    {
      "id": "zh/57_ai-search/13.md",
      "title": "ai-search 搜索代码实现 WebSocket 版本",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/13.md",
      "source": "zh/57_ai-search/13.md",
      "description": "ai-search 搜索代码实现 WebSocket 版本 本文档详细描述了基于 WebSocket 实现的 ai-search 搜索系统的代码结构。系统主要包括以下模块： 实体类：用于封装请求、响应、消息、历史记录以及网页搜索结果等数据结构。 WebSocket 处理器：负责处理客户端连接、握手、消息收发以及关闭连接等操作。 业务服务类：包括消息分发...",
      "keywords": [],
      "status": "document",
      "sha256": "bd10652e9466f68e8c6f6cd513b1efd7d9cbef3b55aac2c2316abf5c6f2b941d"
    },
    {
      "id": "zh/57_ai-search/14.md",
      "title": "ai-search 生成建议问",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/14.md",
      "source": "zh/57_ai-search/14.md",
      "description": "ai-search 生成建议问 简介 在现代对话系统中，为了更好地满足用户需求，常常需要根据先前的对话上下文为用户生成一些后续的建议问题（suggestions），帮助用户更深入地与大模型或搜索引擎进行交互。本文将介绍如何基于大模型来生成这些建议问，并通过示例代码演示具体的实现方法和使用流程。 核心思路 预设 Prompt 提前编写一个 Prompt（...",
      "keywords": [],
      "status": "document",
      "sha256": "d37b9ea14123c3fd1740db585170d35664143bb76b3f26186a116b89b4c6b54c"
    },
    {
      "id": "zh/57_ai-search/15.md",
      "title": "ai-search 生成问题标题",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/15.md",
      "source": "zh/57_ai-search/15.md",
      "description": "ai-search 生成问题标题 一、背景介绍 在问答系统或对话系统中，需要将用户的问题或请求进行简短的概括（尤其用于标题或列表显示），但同时要遵循一定的限制（如字数限制、禁用某些词）。而针对并非真正问题的情况（如纯文本写作需求或简单的招呼问候），我们又希望能够统一返回某个占位值以标识此类请求无需生成相应的短标题。 为此，我们引入了一个简单而有效的做法...",
      "keywords": [],
      "status": "document",
      "sha256": "5975e62f22cfd0d4502fb65e2f2f7932e9723f54a87df1c27ff85fcd3fedc397"
    },
    {
      "id": "zh/57_ai-search/16.md",
      "title": "ai-search 历史记录",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/16.md",
      "source": "zh/57_ai-search/16.md",
      "description": "ai-search 历史记录 本文档旨在为您的 AI+搜索 系统的历史记录功能提供详细的 API 说明和代码实现示例。通过这些 API 接口，用户可以查看所有聊天记录以及指定聊天记录的详细内容，包括聊天基本信息和消息内容。除此之外，还提供了一个辅助接口，用于方便查看向大模型发送推理数据的过程。 1. API 说明 本节详细描述了用于管理和访问聊天历史记...",
      "keywords": [],
      "status": "document",
      "sha256": "4b9753cfbf9f6ff25399a5a6c67f8dfee3254bbecc06e550a4381fbe5c0e66b8"
    },
    {
      "id": "zh/57_ai-search/17.md",
      "title": "Discover API",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/17.md",
      "source": "zh/57_ai-search/17.md",
      "description": "Discover API 本文档详细介绍了 /api/discover 接口的功能、返回数据结构及其实现代码，并说明了前后端交互时传递消息的处理逻辑，帮助开发人员全面了解该接口的设计思想和实现细节。 1. 接口说明 接口地址：GET /api/discover 接口功能：返回博客或新闻内容的列表，主要用于展示摘要信息，便于用户快速了解相关内容。 客户端...",
      "keywords": [],
      "status": "document",
      "sha256": "7c39d190d3636a3a3808116f49c2aeba97f4adfda2c849fe2971d4fecc8d1133"
    },
    {
      "id": "zh/57_ai-search/18.md",
      "title": "翻译",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/18.md",
      "source": "zh/57_ai-search/18.md",
      "description": "翻译 前端发送的参数 提示词 translator_prompt.txt",
      "keywords": [],
      "status": "document",
      "sha256": "8552024b84f588fab00d2ea33d9067a018a00c3fc548fa2274532d1b75044c22"
    },
    {
      "id": "zh/57_ai-search/19.md",
      "title": "Tavily Search API 文档",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/19.md",
      "source": "zh/57_ai-search/19.md",
      "description": "Tavily Search API 文档 Tavily Search API 是专为 AI 智能体（例如大型语言模型，LLM）设计的搜索引擎。本文档将详细介绍该 API 的使用方式，包括搜索（search）和内容抽取（extract）接口，并提供基于 Java 的客户端封装示例及调用示例。 API 接口 1. Search 接口 该接口用于搜索指定的关...",
      "keywords": [],
      "status": "document",
      "sha256": "b60d4560b6528a6a8a689bb10aa253deb65a7e65462c0718f7582714634161ca"
    },
    {
      "id": "zh/57_ai-search/20.md",
      "title": "对接 Tavily Search",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/20.md",
      "source": "zh/57_ai-search/20.md",
      "description": "对接 Tavily Search 由于 Tavily Search API 能够返回更详细的内容，我们选择将 Tavily Search 作为数据问答的数据来源。下面文档介绍了如何使用 Tavily Search 获取搜索结果，并将结果用于后续的问答推理流程。本文档分为两个部分： MaxSearchSearchService：封装了对 Tavily S...",
      "keywords": [],
      "status": "document",
      "sha256": "9fd3838c69fb29367af0ad1f89bbc1d5d45fe0149b9501374e3cba516b9a8517"
    },
    {
      "id": "zh/57_ai-search/21.md",
      "title": "火山引擎 DeepSeek",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/21.md",
      "source": "zh/57_ai-search/21.md",
      "description": "火山引擎 DeepSeek 开通火山引擎联网搜索 登录火山引擎-->选择火山方舟 开通 deepseek r1 和 deepseek r1 联网搜索版 Alt text Alt text 添加应用,添加联网插件 Alt text Api 接入 模型请求示例 调用联网搜索版本请求示例 请求 响应",
      "keywords": [],
      "status": "document",
      "sha256": "8052a5d285a1d53c903a330da8f1c6913a65a87a9ddffc64d23578d4593f3dca"
    },
    {
      "id": "zh/57_ai-search/22.md",
      "title": "对接 火山引擎 DeepSeek",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/22.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/22.md",
      "source": "zh/57_ai-search/22.md",
      "description": "对接 火山引擎 DeepSeek 下面是一篇完整的文档，详细介绍了如何对接火山引擎 DeepSeek 推理 API，将其集成到问答系统中作为推理接口。文档中包含所有代码，并逐步解释各个部分的作用、调用流程和关键实现逻辑，帮助读者深入理解系统的工作原理。 对接火山引擎 DeepSeek 推理 API 在本系统中，我们将火山引擎 DeepSeek 推理 A...",
      "keywords": [],
      "status": "document",
      "sha256": "7fd7c8841ad3669ce398a30bb29e51033c3e3b6cd13050de7bbebe8153d95050"
    },
    {
      "id": "zh/57_ai-search/23.md",
      "title": "ai-search 搜索代码实现 SSE 版本",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/23.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/23.md",
      "source": "zh/57_ai-search/23.md",
      "description": "ai-search 搜索代码实现 SSE 版本 本文档详细说明了基于 SSE（Server-Sent Events）的实时消息传输接口及其代码实现。文中首先介绍了 SSE 接口的请求、响应及消息格式，然后逐个解析了各个关键模块的代码逻辑，包括请求处理、消息分发、搜索结果的处理、以及调用 DeepSeek 模型生成回答的过程。读者可以通过本文档了解整个系...",
      "keywords": [],
      "status": "document",
      "sha256": "af83a94f357b2516c17ce905fbd121819f6cede036d0d89ef7765b1808f20205"
    },
    {
      "id": "zh/57_ai-search/24.md",
      "title": "jar 包部署",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/24.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/24.md",
      "source": "zh/57_ai-search/24.md",
      "description": "jar 包部署 cat .env 启动 使用 docker 启动",
      "keywords": [],
      "status": "document",
      "sha256": "9c822c1d0e1276a530242ed923a4493c132ded256ac5cf8618810f49e3838995"
    },
    {
      "id": "zh/57_ai-search/25.md",
      "title": "Docker 部署",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/25.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/25.md",
      "source": "zh/57_ai-search/25.md",
      "description": "Docker 部署 本文档将指导在 Docker 环境下部署 Max-Search 项目的后端服务，并初始化数据库所需的环境。同时，还将介绍前端的运行方式。 1. 安装 PostgreSQL 在部署后端前，需要准备好 PostgreSQL 数据库，并确保其支持向量扩展。 可以参阅官方文档或 tio-boot 的 PostgreSQL 教程 进行安装和基...",
      "keywords": [],
      "status": "document",
      "sha256": "3f06c310fbd413fee0142307820adcbe9f7758ca3f638b1e34c0e05a62aaaed2"
    },
    {
      "id": "zh/57_ai-search/26.md",
      "title": "爬取一个静态网站的所有数据",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/26.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/26.md",
      "source": "zh/57_ai-search/26.md",
      "description": "爬取一个静态网站的所有数据 这是一份完整的文档，对整个爬取静态网站数据的程序进行详细说明和代码组织，同时保留所有原有代码。该程序主要目标是将静态网站的所有网页数据（HTML、PDF、转换后的 Markdown 等）存入数据库，为后续使用大模型回答用户问题提供参考依据。整个项目基于 litongjava/playwright-server 开发，并利用 ...",
      "keywords": [],
      "status": "document",
      "sha256": "4161950cc543ff32a7a21ae128ef52e8f597b12a22fe3e44f7dc77bdc2d45984"
    },
    {
      "id": "zh/57_ai-search/27.md",
      "title": "网页数据预处理",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/27.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/27.md",
      "source": "zh/57_ai-search/27.md",
      "description": "网页数据预处理 项目背景 在采集到海量网页数据后，为了方便后续利用大模型进行问答或知识检索，需要对数据进行预处理。预处理主要包括两个层次的文本分段——首先将整个网页（Document）拆分为较大块的 Paragraph，然后再将 Paragraph 拆分为更小的 Sentence 级文本，最后利用嵌入模型生成向量数据。整个流程依赖于开源项目 java-...",
      "keywords": [],
      "status": "document",
      "sha256": "16b8c368cde9439c10efdf07c5e639d344b0aeafd718cf67f833a17e694cd61a"
    },
    {
      "id": "zh/57_ai-search/28.md",
      "title": "网页数据检索与问答流程整合",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/28.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/28.md",
      "source": "zh/57_ai-search/28.md",
      "description": "网页数据检索与问答流程整合 在之前的工作中，我们已经按照 java-maxkb 的标准对网页数据进行了预处理，生成了符合向量化检索要求的段落数据。接下来，可以直接基于这些预处理数据进行检索，并将检索结果整合到问答流程中，从而实现对用户问题的快速响应。 本篇文档主要介绍两部分内容： 网页数据检索：通过调用预处理好的段落数据服务进行向量检索，获取与用户问题...",
      "keywords": [],
      "status": "document",
      "sha256": "cbf3140009142e1a8f03d1c712d141937d6765990d6db71fc011466abfc4473f"
    },
    {
      "id": "zh/57_ai-search/readme.md",
      "title": "57_ai-search",
      "language": "zh-CN",
      "chapter": "zh/57_ai-search",
      "url": "https://tio-boot.com/zh/57_ai-search/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/57_ai-search/readme.md",
      "source": "zh/57_ai-search/readme.md",
      "description": "57_ai-search 本目录包含 33 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《ai-search 项目简介》。 : 文档《ai-search 数据库文档》。 : 文档《ai-search SearxNG 搜索引擎》。 : 文档《ai-search Jina Read...",
      "keywords": [],
      "status": "document",
      "sha256": "e4af8b6c99f9d2592c2cc6ab2a92a4c7551a0ae9febbb327cf4f9d97ab3f5848"
    },
    {
      "id": "zh/58_ai-coding/01.md",
      "title": "Cline 提示词",
      "language": "zh-CN",
      "chapter": "zh/58_ai-coding",
      "url": "https://tio-boot.com/zh/58_ai-coding/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/58_ai-coding/01.md",
      "source": "zh/58_ai-coding/01.md",
      "description": "Cline 提示词 本文档用于拆解用户与 MCP Time 工具及大模型交互的过程，同时详细说明如何使用系统提示词和各类工具。 提示词 系统提示词 首先有一个系统提示词,内容如下 用户输入 用户输入的内容使用 task 标签包裹 将当前的环境信息页发送给大模型 Assistant 大模型返回信息,指示客户端调用 mcp 工具 user 客户端执行 mc...",
      "keywords": [],
      "status": "document",
      "sha256": "87391d5be407b71e7b942564b8d9e1e6ec0a811a867a3278cb5db6b7852c7da1"
    },
    {
      "id": "zh/58_ai-coding/02.md",
      "title": "Cline 提示词-中文版本",
      "language": "zh-CN",
      "chapter": "zh/58_ai-coding",
      "url": "https://tio-boot.com/zh/58_ai-coding/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/58_ai-coding/02.md",
      "source": "zh/58_ai-coding/02.md",
      "description": "Cline 提示词-中文版本",
      "keywords": [],
      "status": "document",
      "sha256": "e82da2f672766a4d9b135aa42b91faf4dc43928c57a7edf389d0a366ed875fb8"
    },
    {
      "id": "zh/58_ai-coding/readme.md",
      "title": "58_ai-coding",
      "language": "zh-CN",
      "chapter": "zh/58_ai-coding",
      "url": "https://tio-boot.com/zh/58_ai-coding/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/58_ai-coding/readme.md",
      "source": "zh/58_ai-coding/readme.md",
      "description": "58_ai-coding 本目录包含 3 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Cline 提示词》。 : 文档《Cline 提示词-中文版本》。",
      "keywords": [],
      "status": "document",
      "sha256": "02d71e776f2d14b143500538c306e206cbcb64efdfb671351555311b58e78303"
    },
    {
      "id": "zh/59_java-uni-ai-server/01.md",
      "title": "语音合成系统",
      "language": "zh-CN",
      "chapter": "zh/59_java-uni-ai-server",
      "url": "https://tio-boot.com/zh/59_java-uni-ai-server/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/59_java-uni-ai-server/01.md",
      "source": "zh/59_java-uni-ai-server/01.md",
      "description": "语音合成系统 本系统旨在将输入文本转换为语音并返回 MP3 格式的音频文件。系统会自动根据输入文本的语言选择对应的语音合成引擎，并对生成的音频进行缓存，避免重复请求，从而降低资源消耗。 1. 系统简介 系统主要包含以下功能与特性： 多语言支持： 英文文本： 使用 OpenAi 提供的 TTS 服务进行语音合成。 中文文本： 使用火山引擎的 TTS 服务...",
      "keywords": [],
      "status": "document",
      "sha256": "1327d914fe9b633130cdbefe218b31a696a38b4f80f21c5bc8e44621ec8526f9"
    },
    {
      "id": "zh/59_java-uni-ai-server/02.md",
      "title": "Fish.audio TTS 接口说明文档与 Java 客户端封装",
      "language": "zh-CN",
      "chapter": "zh/59_java-uni-ai-server",
      "url": "https://tio-boot.com/zh/59_java-uni-ai-server/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/59_java-uni-ai-server/02.md",
      "source": "zh/59_java-uni-ai-server/02.md",
      "description": "Fish.audio TTS 接口说明文档与 Java 客户端封装 本文档详细说明了 Fish.audio TTS 接口的使用方法，并给出了完整的 Java 客户端封装示例代码，包括请求参数对象、硬编码实现的 MsgPack 转换工具、客户端调用逻辑以及测试示例。通过阅读本文档，您可以了解如何构造 msgpack 格式的请求体，如何使用 OkHttp ...",
      "keywords": [],
      "status": "document",
      "sha256": "0edeaa85e0fc9baafa791de79dd51e84641c56f3e74cbe399e3675a8941972d6"
    },
    {
      "id": "zh/59_java-uni-ai-server/03.md",
      "title": "整合 fishaudio 到 java-uni-ai-server 项目",
      "language": "zh-CN",
      "chapter": "zh/59_java-uni-ai-server",
      "url": "https://tio-boot.com/zh/59_java-uni-ai-server/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/59_java-uni-ai-server/03.md",
      "source": "zh/59_java-uni-ai-server/03.md",
      "description": "整合 fishaudio 到 java-uni-ai-server 项目 本文档详细介绍了如何在项目中整合 fishaudio 语音合成服务。项目原有的 TTS（语音合成）服务支持 openai 和 volce 平台，现在新增 fishaudio 服务，方便用户选择不同的 TTS 平台。下面将逐步展示各个模块的代码及功能说明。 1. 项目模块介绍 本次...",
      "keywords": [],
      "status": "document",
      "sha256": "3e684aee867b3a7f2a0c38ce75147e7c3938f63b0c8844b253443582ab610263"
    },
    {
      "id": "zh/59_java-uni-ai-server/04.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/59_java-uni-ai-server",
      "url": "https://tio-boot.com/zh/59_java-uni-ai-server/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/59_java-uni-ai-server/04.md",
      "source": "zh/59_java-uni-ai-server/04.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/59_java-uni-ai-server/readme.md",
      "title": "59_java-uni-ai-server",
      "language": "zh-CN",
      "chapter": "zh/59_java-uni-ai-server",
      "url": "https://tio-boot.com/zh/59_java-uni-ai-server/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/59_java-uni-ai-server/readme.md",
      "source": "zh/59_java-uni-ai-server/readme.md",
      "description": "59_java-uni-ai-server 本目录包含 5 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《语音合成系统》。 : 文档《Fish.audio TTS 接口说明文档与 Java 客户端封装》。 : 文档《整合 fishaudio 到 java-uni-ai-serv...",
      "keywords": [],
      "status": "document",
      "sha256": "f1cce76ab094a2082dc8ea8f0307e920cd253e3ecfd6ecab770fa39b07ab2391"
    },
    {
      "id": "zh/60_java-llm-proxy/01.md",
      "title": "使用tio-boot搭建多模型LLM代理服务",
      "language": "zh-CN",
      "chapter": "zh/60_java-llm-proxy",
      "url": "https://tio-boot.com/zh/60_java-llm-proxy/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/60_java-llm-proxy/01.md",
      "source": "zh/60_java-llm-proxy/01.md",
      "description": "使用tio-boot搭建多模型LLM代理服务 本文档介绍如何基于tio-boot框架快速搭建一个支持多模型的大语言模型代理服务。该代理服务将接收来自客户端的请求（包括流式和非流式模式），并通过统一接口将请求转发至OpenAI、Anthropic Claude和Google Gemini等API，同时负责将返回结果以HTTP响应或SSE（Server-S...",
      "keywords": [],
      "status": "document",
      "sha256": "ee9139b305d61927fcd7f48b003d8c39ba94d46fcaf4e676ee708e232f9bcc3f"
    },
    {
      "id": "zh/60_java-llm-proxy/readme.md",
      "title": "60_java-llm-proxy",
      "language": "zh-CN",
      "chapter": "zh/60_java-llm-proxy",
      "url": "https://tio-boot.com/zh/60_java-llm-proxy/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/60_java-llm-proxy/readme.md",
      "source": "zh/60_java-llm-proxy/readme.md",
      "description": "60_java-llm-proxy 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《使用tio-boot搭建多模型LLM代理服务》。",
      "keywords": [],
      "status": "document",
      "sha256": "8e0ee8897aac76c893c63a797fc702a54eed938b5cb365e24a2c611683a56954"
    },
    {
      "id": "zh/61_java-kit-server/01.md",
      "title": "Java 执行 python 代码",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/01.md",
      "source": "zh/61_java-kit-server/01.md",
      "description": "Java 执行 python 代码 本文档介绍了如何在 Java 环境调用 Python 脚本，并最终获取图像输出。文中详细讲解了整个流程，包括使用 Python 的 Agg 后端、通过 -c 参数一次性执行命令，以及利用 Enjoy 模版引擎配合 main.py 执行用户脚本的原理。 1. Java 调用 Python 代码的实现 在 Java 中，...",
      "keywords": [],
      "status": "document",
      "sha256": "ff24af1185a1cc8ddd6a7b047de097b07afca2b1ad1ccdebf7ca776b8e8ea64f"
    },
    {
      "id": "zh/61_java-kit-server/02.md",
      "title": "通过大模型执行 Python 代码",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/02.md",
      "source": "zh/61_java-kit-server/02.md",
      "description": "通过大模型执行 Python 代码 本文档介绍如何通过大模型生成符合规范、易于维护的 Python 代码，并通过 java-kit-server-server 执行该代码。整个过程严格遵循预设的工具调用格式和步骤，以确保生成的代码既安全又高效。文档包含系统提示词、示例代码以及 Java 服务端实现的所有代码，不遗漏任何细节。 1. 系统提示词 系统提示...",
      "keywords": [],
      "status": "document",
      "sha256": "6797af4557d5a80faf334b9c9b0dd1d954853fb6d615c0441c8bc0123212ab8c"
    },
    {
      "id": "zh/61_java-kit-server/03.md",
      "title": "执行 Python (Manim) 代码",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/03.md",
      "source": "zh/61_java-kit-server/03.md",
      "description": "执行 Python (Manim) 代码 本文档介绍了基于 java-kit-server 项目环境下如何通过 Java 程序执行 Python 代码（主要用于执行 Manim 脚本）的实现方案。文档包括整体架构、工作流程说明以及完整的代码实现，确保不遗漏您提供的任何代码。 1. 项目概述 该项目旨在提供一个基于 Java 后端的 Python 代码执...",
      "keywords": [],
      "status": "document",
      "sha256": "265174542028492d760ffc8f217d273e0eba48fe15b6a7086eb3bb3652f1654e"
    },
    {
      "id": "zh/61_java-kit-server/04.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/04.md",
      "source": "zh/61_java-kit-server/04.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/61_java-kit-server/05.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/05.md",
      "source": "zh/61_java-kit-server/05.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/61_java-kit-server/06.md",
      "title": "待定",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/06.md",
      "source": "zh/61_java-kit-server/06.md",
      "description": "待定",
      "keywords": [],
      "status": "placeholder",
      "sha256": "c65f819aa4dc2e52b6e02a6a8fd885f798dccfac5d3064ad73259beee29d6453"
    },
    {
      "id": "zh/61_java-kit-server/07.md",
      "title": "视频下载增加水印说明文档",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/07.md",
      "source": "zh/61_java-kit-server/07.md",
      "description": "视频下载增加水印说明文档 该功能提供了一个 HTTP 接口用于视频下载，同时在视频中增加右下角的水印。主要流程如下： 客户端通过 URL 发起请求，示例如下： 请求参数说明： path：视频文件存储的相对或绝对路径（本例中拼接了 “.” 作为根目录）。 text：水印文字内容，将在视频右下角显示。 filename：下载时客户端保存的视频文件名（通过设...",
      "keywords": [],
      "status": "document",
      "sha256": "d0b37d170c5f8d62cd818bc9c73cca084b54c343b275a78921a618c73a05a49c"
    },
    {
      "id": "zh/61_java-kit-server/readme_files/readme.md",
      "title": "readme_files",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/readme_files/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/readme_files/readme.md",
      "source": "zh/61_java-kit-server/readme_files/readme.md",
      "description": "readme_files 本目录包含 2 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 image.png: 图片资源，用于本目录文档配图或界面示意。",
      "keywords": [],
      "status": "document",
      "sha256": "c51c9c0e3426a673056222c7d67e52e64eddaf1d961174247c6ee198b97f3190"
    },
    {
      "id": "zh/61_java-kit-server/readme.md",
      "title": "61_java-kit-server",
      "language": "zh-CN",
      "chapter": "zh/61_java-kit-server",
      "url": "https://tio-boot.com/zh/61_java-kit-server/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/61_java-kit-server/readme.md",
      "source": "zh/61_java-kit-server/readme.md",
      "description": "61_java-kit-server 本目录包含 8 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《Java 执行 python 代码》。 : 文档《通过大模型执行 Python 代码》。 : 文档《执行 Python (Manim) 代码》。 : 文档《待定》。 : 文档《待...",
      "keywords": [],
      "status": "document",
      "sha256": "f1f147b783b5c5645866e2da85d88ea18c3c91fd99fc357a69f1cdc7f25ff842"
    },
    {
      "id": "zh/62_ai-brower/01.md",
      "title": "AI Browser：基于用户指令的浏览器自动化系统",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/01.md",
      "source": "zh/62_ai-brower/01.md",
      "description": "AI Browser：基于用户指令的浏览器自动化系统 简介 本系统实现了智能化浏览器操作引擎，能够根据自然语言指令自动执行网页浏览任务。通过将网页元素结构化表示与AI决策模型相结合，系统能够理解用户意图并转化为具体浏览器操作，实现从简单搜索到复杂工作流（如在线购票）的自动化执行。 网页内容结构化处理 系统核心创新在于将复杂DOM结构转换为AI可理解的文...",
      "keywords": [],
      "status": "document",
      "sha256": "e02967b94b6e0b09d841e882c23d07161930a4512629ba9bfef01e4d59c1a69e"
    },
    {
      "id": "zh/62_ai-brower/02.md",
      "title": "提示词",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/02.md",
      "source": "zh/62_ai-brower/02.md",
      "description": "提示词 系统提示词 完整交互流程",
      "keywords": [],
      "status": "document",
      "sha256": "3c6051b7adc9fbcecf981d063e97b673ac8a9ba454b56cf230a566c112c37fef"
    },
    {
      "id": "zh/62_ai-brower/03.md",
      "title": "dom构建- buildDomTree.js",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/03.md",
      "source": "zh/62_ai-brower/03.md",
      "description": "dom构建- buildDomTree.js 引言 在自动化测试、可视化辅助工具或浏览器扩展中，精准获取并标记页面中的可交互元素是核心需求。本文档从 DOM 树的构建与遍历出发，依次介绍如何判断元素的可见性与交互性，如何在页面上高亮并标记目标元素，最后阐述性能监控与缓存优化思路，为开发者提供一套全面且高效的实现方案。 1. DOM 树构建 通过递归遍历...",
      "keywords": [],
      "status": "document",
      "sha256": "486817a092cfb3139cbc046619b57153d5133b4260bc8acd0c4c5d89b838d787"
    },
    {
      "id": "zh/62_ai-brower/04.md",
      "title": "dom构建- 将网页可点击元素提取与可视化",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/04.md",
      "source": "zh/62_ai-brower/04.md",
      "description": "dom构建- 将网页可点击元素提取与可视化 一、项目背景与目标 在自动化测试、智能 AI 代理交互等场景中，我们常常需要让机器“看懂”网页，将页面中的可点击元素提取出来并以结构化、可读的文本形式呈现，便于后续推理或自动化操作。本示例基于 Playwright 和一段自定义脚本，将任意网页的 DOM 树构建为 Java 对象，并输出所有可交互元素的文本化...",
      "keywords": [],
      "status": "document",
      "sha256": "d492a76961fe68b9f94dd9827ae87f50ae7c9ae8445e3cf9751333fa7c7de04d"
    },
    {
      "id": "zh/62_ai-brower/05.md",
      "title": "提取网内容",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/05.md",
      "source": "zh/62_ai-brower/05.md",
      "description": "提取网内容 1. 简介 StructuredDataExtractor 是基于 Playwright、Jsoup 和 Flexmark 的一个工具类，用于从已加载的网页中提取结构化数据。它提供两种主要能力： 纯文本提取：直接获取页面主体的所有可见文本。 HTML 转 Markdown：将页面主体 HTML 转换为 Markdown，并可选地在末尾附上页...",
      "keywords": [],
      "status": "document",
      "sha256": "1c24d8f0dc68d1ee2aa7681e470fe1ce51146520526659de4e031632a0c20317"
    },
    {
      "id": "zh/62_ai-brower/06.md",
      "title": "启动浏览器",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/06.md",
      "source": "zh/62_ai-brower/06.md",
      "description": "启动浏览器 HTTP 控制浏览器 本文档介绍如何通过 HTTP 接口启动、导航及关闭 Playwright 浏览器实例，并提供完整的示例代码 一、前置条件 JDK 8 及以上 Playwright for Java 依赖： tio-boot 框架 二、核心数据结构：BrowserInstance 用于在内存中保存每个浏览器实例的上下文和页面引用。 三、...",
      "keywords": [],
      "status": "document",
      "sha256": "6d6fe6d7f797cfafdfd46f546a5485958a60b578a1b351f38fb61d78dc7b61d2"
    },
    {
      "id": "zh/62_ai-brower/07.md",
      "title": "操作浏览器指令",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/07.md",
      "source": "zh/62_ai-brower/07.md",
      "description": "操作浏览器指令 浏览器操作直接相关的指令： search_google：在 Google 上搜索 go_to_url：跳转到指定 URL，可选新标签页 go_back：浏览器后退 wait：等待指定秒数（常用于等待页面或元素加载） click_element_by_index：单击当前页中指定索引的可交互元素 input_text：在指定输入框中输入文...",
      "keywords": [],
      "status": "document",
      "sha256": "b6d20c9f65d5f6cc8a7bde97665722172337d9a1f0baeb8dca55818d95fe7a0f"
    },
    {
      "id": "zh/62_ai-brower/images/readme.md",
      "title": "images",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/images/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/images/readme.md",
      "source": "zh/62_ai-brower/images/readme.md",
      "description": "images 本目录包含 3 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 baidu-boxed.png: 图片资源，用于本目录文档配图或界面示意。 google-dom.png: 图片资源，用于本目录文档配图或界面示意。",
      "keywords": [],
      "status": "document",
      "sha256": "a382b00f6a1835d070d2d4984038899515b323473c4b4fd7f03e1db74b7bd41b"
    },
    {
      "id": "zh/62_ai-brower/readme.md",
      "title": "62_ai-brower",
      "language": "zh-CN",
      "chapter": "zh/62_ai-brower",
      "url": "https://tio-boot.com/zh/62_ai-brower/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/62_ai-brower/readme.md",
      "source": "zh/62_ai-brower/readme.md",
      "description": "62_ai-brower 本目录包含 8 个文件和 1 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《AI Browser：基于用户指令的浏览器自动化系统》。 : 文档《提示词》。 : 文档《dom构建- buildDomTree.js》。 : 文档《dom构建- 将网页可点击元素提取与可视...",
      "keywords": [],
      "status": "document",
      "sha256": "75558059e54475c77dcb4207fb9157d58dff924105f2aab54434fef65f3625f3"
    },
    {
      "id": "zh/63_tio-boot-admin/01.md",
      "title": "入门指南：使用框架内置配置",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/01.md",
      "source": "zh/63_tio-boot-admin/01.md",
      "description": "入门指南：使用框架内置配置 tio-boot-admin 是基于 tio-boot 的后台管理中间层，封装了数据库配置、登录处理器、鉴权拦截器和 ApiTable 通用表接口。接入项目时，调用这些配置类，再添加项目自己的业务代码即可。 本章以 Java 21、tio-boot-admin、PostgreSQL 为例，代码使用 nexus.io 包名。依...",
      "keywords": [],
      "status": "document",
      "sha256": "3d1862b655ae17f808a53257ee03addf5675bc24ebfd3b73521e00a7a116c110"
    },
    {
      "id": "zh/63_tio-boot-admin/02.md",
      "title": "手动初始化数据库",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/02.md",
      "source": "zh/63_tio-boot-admin/02.md",
      "description": "手动初始化数据库 数据库初始化由用户在数据库客户端或命令行中手动执行 SQL。TioAdminDbConfiguration 只初始化连接池和 ActiveRecord，不执行本章 SQL，不创建或重置管理员。 不要在应用启动入口、BootConfiguration、初始化注解或请求处理中增加自动建表、自动插入账号逻辑。把 SQL 保留为可审阅的文件，...",
      "keywords": [],
      "status": "document",
      "sha256": "592a7590ae3f3cc40250836e5253cebd4157676bcc20cb7e6318546a4d4c68db"
    },
    {
      "id": "zh/63_tio-boot-admin/03.md",
      "title": "配置职责、生效条件与扩展边界",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/03.md",
      "source": "zh/63_tio-boot-admin/03.md",
      "description": "配置职责、生效条件与扩展边界 本章介绍 tio-boot-admin 的内置配置，解释 中七个配置调用。新项目应优先使用这些内置配置，只为明确的业务需求增加扩展。 1. 七个配置类分别做什么 因此可以保留完整的标准调用序列，而只配置当前使用的数据源。这里的“按需启用”需要准确理解：数据库连接是否建立由对应连接项控制，路由和拦截器的注册由配置调用完成，具...",
      "keywords": [],
      "status": "document",
      "sha256": "b727304069b9c78fdcfaa7e62c97c1a0b474f7bf90a2e1c72f828fbce304368e"
    },
    {
      "id": "zh/63_tio-boot-admin/04.md",
      "title": "整合数据库",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/04.md",
      "source": "zh/63_tio-boot-admin/04.md",
      "description": "整合数据库 tio-boot-admin 通过 TioAdminDbConfiguration 初始化 Hikari 连接池和 java-db 的 ActiveRecord 插件。初始化完成后，业务代码直接使用静态 nexus.io.db.activerecord.Db，无需重新创建连接池或保存默认 DbPro 实例。 本章以 PostgreSQL 为...",
      "keywords": [],
      "status": "document",
      "sha256": "9388fda2b9ff3ef3e9cecf0217e2dd08e78b0537cfab5a3b3e536ee146756df6"
    },
    {
      "id": "zh/63_tio-boot-admin/05.md",
      "title": "与前端集成",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/05.md",
      "source": "zh/63_tio-boot-admin/05.md",
      "description": "与前端集成 本章介绍后台管理前端及 ApiTable 组件。普通用户使用的 H5、微信小程序可以单独采用 uni-app 等技术，通过业务 API 接入同一后端。两类前端的接口权限不同，不能把后台 Token 或通用表接口直接用于普通用户页面。业务接口与联调约定见 。 通过上述步骤，我们已经成功搭建了一个简单的后台管理系统的框架。tio-boot-ad...",
      "keywords": [],
      "status": "document",
      "sha256": "1f52ebb9b7348a623ac9a3a94edd20adc67b51a1846d98dab2637c8829db99e4"
    },
    {
      "id": "zh/63_tio-boot-admin/06.md",
      "title": "文件上传",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/06.md",
      "source": "zh/63_tio-boot-admin/06.md",
      "description": "文件上传 简介 本文件介绍了如何使用 Tio Boot Admin 技术栈（前端使用 tio-boot-admin-react，后端使用 tio-boot-admin）实现一个基于文件表单的业务功能模块。本模块支持文件上传、下载、预览以及与数据库的集成管理。 数据表设计 文件信息表 系统文件上传表存储了文件上传的详细信息，如文件名、大小、MD5 值等。...",
      "keywords": [],
      "status": "document",
      "sha256": "2e3422e87ff55b43c2aa9a644a6e3b9d68da79896099d276b2f25f61f454c287"
    },
    {
      "id": "zh/63_tio-boot-admin/07.md",
      "title": "网络请求",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/07.md",
      "source": "zh/63_tio-boot-admin/07.md",
      "description": "网络请求 简介 本文将介绍如何使用 React 和 Ant Design 和 tio-boot-admin-react ApiTable 组件，在表格的列中添加一个操作按钮。点击按钮后触发网络请求，网络请求成功后刷新表格。同时展示了如何增加全局的按钮，实现类似功能。 功能目标 为表格每行添加一个按钮： 点击按钮后发送网络请求。 请求成功后刷新表格内容。...",
      "keywords": [],
      "status": "document",
      "sha256": "80201f091f2040df85713864a9c5e6e3ce2a76dc1d1e3a81a8a5bce972973cf5"
    },
    {
      "id": "zh/63_tio-boot-admin/08.md",
      "title": "单图片管理（只读模式）",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/08.md",
      "source": "zh/63_tio-boot-admin/08.md",
      "description": "单图片管理（只读模式） 本文介绍如何在 tio-boot-admin + tio-boot-admin-react 体系下，实现单张图片的管理与展示。 该方案仅用于浏览与查询，不支持图片上传、编辑或删除操作，适用于 OCR 结果缓存、日志快照、第三方图片引用等只读业务场景。 一、使用场景说明 本方案适合以下场景： 每条记录只对应 一张图片 图片已由其他...",
      "keywords": [],
      "status": "document",
      "sha256": "c6c0d669a7a91445bace1f620cdc57c66e2835df8f948d9f2d219412f7d3f1a4"
    },
    {
      "id": "zh/63_tio-boot-admin/09.md",
      "title": "多图片管理",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/09.md",
      "source": "zh/63_tio-boot-admin/09.md",
      "description": "多图片管理 本文介绍如何使用 tio-boot-admin 和 tio-boot-admin-react 实现图片管理功能，包括数据库表的创建、后端文件上传配置以及前端页面的开发。 目录 创建数据表 配置后端支持文件上传 前端实现 定义表格列 服务层处理 页面组件 配置路由 显示效果 创建数据表 首先，需要在数据库中创建用于存储图片信息的数据表。以下是...",
      "keywords": [],
      "status": "document",
      "sha256": "fc33ec906ff9292f4276889d7bd699551c31808828855db4410b425a79085f28"
    },
    {
      "id": "zh/63_tio-boot-admin/10.md",
      "title": "布尔值管理",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/10.md",
      "source": "zh/63_tio-boot-admin/10.md",
      "description": "布尔值管理 本文介绍在 tio-boot-admin + tio-boot-admin-react 体系下，如何对**布尔值字段（Boolean）**进行统一、规范、可查询的管理与展示。 重点说明 数据库设计、前端枚举映射、筛选能力与查询行为，适用于业务中存在明确“是 / 否”“命中 / 未命中”“开启 / 关闭”语义的字段场景。 一、使用场景说明 布...",
      "keywords": [],
      "status": "document",
      "sha256": "d99969a738334a92d8f01002566e837327e82e94d30083662219a055c4e20e7d"
    },
    {
      "id": "zh/63_tio-boot-admin/11.md",
      "title": "字段联动",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/11.md",
      "source": "zh/63_tio-boot-admin/11.md",
      "description": "字段联动 本章以“分类 → 子分类”为例。字典表和保存校验由业务工程实现，ApiTable 不会根据字段名自动推断联动关系。 手动创建字典表 这是 PostgreSQL 示例，parent_id 使用逻辑关联，没有外键。写入与删除时须校验父记录和引用关系。表前缀按项目替换，SQL 由用户手动执行。 前端状态流程 父项改变时先清空子项值和列表，再加载新子...",
      "keywords": [],
      "status": "document",
      "sha256": "ca47c532ab5ee94dbb9ffa44c40cc1810c0a9d5dd3c5a0cf78a57e69a1884be5"
    },
    {
      "id": "zh/63_tio-boot-admin/12.md",
      "title": "Word 管理",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/12.md",
      "source": "zh/63_tio-boot-admin/12.md",
      "description": "Word 管理 Word 管理包含上传、元数据、下载和可选预览。后台表格与上传接口不等于在线 Office 编辑器；格式转换或协同编辑需单独接入。 文档元数据 以下 PostgreSQL 示例可同时管理 Word 和 PDF，由用户手动执行： file_id 与 preview_file_id 是文件服务的逻辑关联，没有声明外键或绑定固定文件表。保存时...",
      "keywords": [],
      "status": "document",
      "sha256": "796aad28d4246c290e3a50326a1cd54704a25f211243e9655b11bcb316493830"
    },
    {
      "id": "zh/63_tio-boot-admin/13.md",
      "title": "PDF 管理",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/13.md",
      "source": "zh/63_tio-boot-admin/13.md",
      "description": "PDF 管理 PDF 可沿用 的 app_document 表，将 format 设为 pdf，无需重复建表。上传仍须验证文件类型、大小和权限。 展示方式 不能仅设置表格 valueType 就认为已有 PDF 阅读器，也不能把 HTML iframe 直接视为小程序组件。 文件响应与访问 业务接口检查权限后输出 application/pdf，按预览...",
      "keywords": [],
      "status": "document",
      "sha256": "2f6647844b4459ccaa799e28ffc9ccd3047ddf9394279e9aea7ea4d1387a7453"
    },
    {
      "id": "zh/63_tio-boot-admin/14.md",
      "title": "文章管理",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/14.md",
      "source": "zh/63_tio-boot-admin/14.md",
      "description": "文章管理 在本文中，我们将展示如何使用 Tio Boot Admin 和 React 配合 WangEditor 来实现文章管理功能，包括文章的分类管理、创建、编辑、列表展示以及预览。以下是完整的实现步骤和代码示例。 数据表 为实现文章管理功能，需要设计两张数据表：文章分类表和文章表。 作者表 文章分类表 文章标签表 文章表 tio_boot_admi...",
      "keywords": [],
      "status": "document",
      "sha256": "cf133a83c94d743fda1d1fc4fe2f4e0273f029cb36d7ecdd43b66cafeb2569c4"
    },
    {
      "id": "zh/63_tio-boot-admin/15.md",
      "title": "富文本编辑器",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/15.md",
      "source": "zh/63_tio-boot-admin/15.md",
      "description": "富文本编辑器 在上一节中，我们介绍了使用 Tio Boot Admin、React 和 WangEditor 实现文章管理功能。本节将聚焦于富文本编辑器的功能扩展和使用，展示如何通过定制上传功能支持图片、视频和嵌入 YouTube 视频的能力。 富文本编辑器组件实现 编辑器组件 (CommonEditor.tsx) CommonEditor 是对 Wa...",
      "keywords": [],
      "status": "document",
      "sha256": "4a56c953d3fe13c0471a8f896c2d054c87bbae8ecdc8933f7030a5c5aefcb3ae"
    },
    {
      "id": "zh/63_tio-boot-admin/16.md",
      "title": "整合 Enjoy 模版引擎",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/16.md",
      "source": "zh/63_tio-boot-admin/16.md",
      "description": "整合 Enjoy 模版引擎 本文介绍如何在 tio-boot-admin 项目中集成 Enjoy 模版引擎，并实现数据库数据渲染到前端页面。 一、引入 Enjoy 模版引擎 在项目启动时，执行以下配置： 该配置会完成： 初始化 Enjoy 引擎 设置模版路径 启用模版渲染能力 二、后端实现 1. Handler 编写 创建一个 Handler，用于： ...",
      "keywords": [],
      "status": "document",
      "sha256": "4120b1c573d6ae396936b526330981a1e89f3705171fa0e3c60014b00b744eef"
    },
    {
      "id": "zh/63_tio-boot-admin/17.md",
      "title": "历史可选方案：Token 存储与 Sa-Token",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/17.md",
      "source": "zh/63_tio-boot-admin/17.md",
      "description": "历史可选方案：Token 存储与 Sa-Token 本文适用于需要维护旧 Sa-Token 集成的项目。当前 tio-boot-admin 默认使用框架 Token/JWT 鉴权，标准接入无需添加 Sa-Token 依赖、配置类或表。请先阅读 和 。本文保留旧版实现供参考，类名、表名与依赖需按旧项目实际版本核对；涉及 SQL 仍由用户手动执行。 使用数...",
      "keywords": [],
      "status": "document",
      "sha256": "4e2d33fe85d4317216303de36abdecda92add5b8542a239607f8a49bec37dfe2"
    },
    {
      "id": "zh/63_tio-boot-admin/18.md",
      "title": "业务 API 与 H5 / 小程序联调",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/18.md",
      "source": "zh/63_tio-boot-admin/18.md",
      "description": "业务 API 与 H5 / 小程序联调 本章补充使用 tio-boot-admin（nexus.io 包名）开发 PostgreSQL 业务项目时的接口约定和验证方法。响应格式、用户会话、业务表和第三方占位是业务工程的实现选择，不是框架自动提供的能力。 1. 保留后台配置，增加业务入口 继续使用 的六个内置配置调用。后台登录与 ApiTable 保留原...",
      "keywords": [],
      "status": "document",
      "sha256": "20f89bd4c0a857d3ba4f56de17b92090f0a2a8c3b57a3aa1ba8e4893a01f23c2"
    },
    {
      "id": "zh/63_tio-boot-admin/19.md",
      "title": "方法路由与业务鉴权",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/19.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/19.md",
      "source": "zh/63_tio-boot-admin/19.md",
      "description": "方法路由与业务鉴权 本章介绍方法路由、业务鉴权拦截器及其配置方式。tio-boot 使用 Java 8 编译，tio-boot-admin 使用 Java 21 编译；Java 版本与 Maven 组件版本是两回事。 1. 本地构建顺序 先在 t-io 根目录使用 JDK 8 执行，再在 tio-boot-admin 根目录使用 JDK 21 执行： ...",
      "keywords": [],
      "status": "document",
      "sha256": "72254986a7bf71a2a04940986e617cd06db45503dc679a8ddfe6f640eece12c9"
    },
    {
      "id": "zh/63_tio-boot-admin/20.md",
      "title": "整合 Redis",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/20.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/20.md",
      "source": "zh/63_tio-boot-admin/20.md",
      "description": "整合 Redis tio-boot-admin 提供 TioAdminRedisDbConfiguration，负责读取 Redis 连接参数、启动 java-db 的 Redis 插件，并在应用关闭时停止插件。业务代码复用已有连接池即可。 1. 添加客户端依赖 在应用的 pom.xml 中显式声明 Jedis；如果工程已经声明，不要重复添加： 上游以...",
      "keywords": [],
      "status": "document",
      "sha256": "d7d2a5d903b2d36f96193a078a4c309a59b6c32bb07dd19c7308a4d0b06246c3"
    },
    {
      "id": "zh/63_tio-boot-admin/21.md",
      "title": "整合 Elasticsearch",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/21.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/21.md",
      "source": "zh/63_tio-boot-admin/21.md",
      "description": "整合 Elasticsearch TioAdminElasticsearchConfig 读取连接配置，创建 RestHighLevelClient，注册到 java-db 的 Elastic 工具类，并在应用关闭时释放客户端。业务代码直接调用 Elastic，不必重复创建客户端或连接池。 1. 添加客户端依赖 在已有 tio-boot-admin 工...",
      "keywords": [],
      "status": "document",
      "sha256": "df9e00db7954668caa757aca0d70a339120599adb74a0e8f247237b9733fb6e8"
    },
    {
      "id": "zh/63_tio-boot-admin/22.md",
      "title": "后端开发规范：tio-boot、java-db 与 Kv",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/22.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/22.md",
      "source": "zh/63_tio-boot-admin/22.md",
      "description": "后端开发规范：tio-boot、java-db 与 Kv 本文后续新增接口、重构和代码审查的基准。示例省略 import 及与说明无关的业务实现；业务对象 Kv 指 com.jfinal.kit.Kv。文档不固定框架版本，实际能力以项目依赖和对应源码为准。 1. 总体分层 请求链路：路由匹配 → 鉴权拦截器 → Handler → Service → ...",
      "keywords": [],
      "status": "document",
      "sha256": "9957600743a02290489846cc40c98bf18c817b901fd07ac1ef95cff7bcaa5702"
    },
    {
      "id": "zh/63_tio-boot-admin/readme.md",
      "title": "63_tio-boot-admin",
      "language": "zh-CN",
      "chapter": "zh/63_tio-boot-admin",
      "url": "https://tio-boot.com/zh/63_tio-boot-admin/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/63_tio-boot-admin/readme.md",
      "source": "zh/63_tio-boot-admin/readme.md",
      "description": "63_tio-boot-admin 推荐阅读顺序：01 入门指南 → 02 手动初始化数据库 → 03 配置职责 → 04 整合数据库 → 05 与前端集成。 Redis 连接与字符串操作见 。17 是历史可选方案，默认接入不需要 Sa-Token。业务联调、路由鉴权和开发规范分别见 18、19、22。 章节目录 图片资源 create.png: 图片...",
      "keywords": [],
      "status": "document",
      "sha256": "c2c71ac5b9790b352981a5bd735cfbeef3698bb59f3814ee343e4ced5237b78f"
    },
    {
      "id": "zh/64_文件存储/01.md",
      "title": "文件上传数据表",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/01.md",
      "source": "zh/64_文件存储/01.md",
      "description": "文件上传数据表 在这个指南中，我们将详细介绍如何设计和实现一个文件上传和管理系统的数据库 1. 文件表设计 首先，我们需要设计一个表来存储上传文件的相关信息。以下是一个示例的 SQL 表结构： 插入示例数据： 该表记录了文件的基本信息和元数据，如文件的 MD5 值、文件名、文件大小、存储路径和标签等。 2. 业务表设计 业务表用于存储与业务相关的信息，...",
      "keywords": [],
      "status": "document",
      "sha256": "661fea11835e0f5ad4715ccadcadcf57f59384ad641e982831259f9570ceac81"
    },
    {
      "id": "zh/64_文件存储/02.md",
      "title": "本地存储",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/02.md",
      "source": "zh/64_文件存储/02.md",
      "description": "本地存储 本篇文章介绍一个实例，演示如何将文件存储到本地文件系统。通过配置和编写相应的代码，实现文件的上传、存储及访问功能。 目录 实现本地存储 配置文件 配置类 数据库配置类 DbConfig 处理器配置类 HandlerConfiguration 业务层 接入层 文件上传文档 1. 客户端生成文件的 MD5 值 2. 检查文件是否已上传 3. 上传...",
      "keywords": [],
      "status": "document",
      "sha256": "cbacf1e182927c829e598f0f2853ba91692011842a82a90a3cb3c003ac344e03"
    },
    {
      "id": "zh/64_文件存储/03.md",
      "title": "存储到 亚马逊 S3",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/03.md",
      "source": "zh/64_文件存储/03.md",
      "description": "存储到 亚马逊 S3 使用 AWS S3 存储文件并整合到 Tio-Boot 项目中 本文将详细介绍如何在 AWS S3 上配置存储桶，并将其整合到 Tio-Boot 项目中，实现文件的上传、存储及相关信息的保存到数据库。本文包含所有必要的配置步骤、代码示例及相关说明，确保您能够顺利完成集成。 目录 AW3 S3 配置 创建存储桶 设置公开权限 修改桶...",
      "keywords": [],
      "status": "document",
      "sha256": "0b9021dd59bbaacd28a3f15c29e883150161e19be13172edbf55425227927ecb"
    },
    {
      "id": "zh/64_文件存储/04.md",
      "title": "存储到 Cloudflare R2",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/04.md",
      "source": "zh/64_文件存储/04.md",
      "description": "存储到 Cloudflare R2 本文介绍如何： 创建 Cloudflare R2 Bucket 绑定自定义域名 获取 AccountId 配置 CORS 创建 R2 API Token 配置环境变量 使用 Java S3 SDK 上传文件到 R2 一、创建 R2 Bucket 进入 Cloudflare 控制台： 依次进入： 输入 Bucket 名...",
      "keywords": [],
      "status": "document",
      "sha256": "58d7ddc8c52d0146f9ec8e835fefe21ca6abd353b60605853aebe9fe8ad4705e"
    },
    {
      "id": "zh/64_文件存储/05.md",
      "title": "存储到 腾讯 COS",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/05.md",
      "source": "zh/64_文件存储/05.md",
      "description": "存储到 腾讯 COS 添加依赖 编写工具类 TencentStorageService 接收文件上传并入库 SystemFileTencentCosHandler",
      "keywords": [],
      "status": "document",
      "sha256": "fbe25dcd0e23e86dec281375bb5ffa2792cd38460719eee230e3827293a90d47"
    },
    {
      "id": "zh/64_文件存储/06.md",
      "title": "存储到 阿里云 OSS",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/06.md",
      "source": "zh/64_文件存储/06.md",
      "description": "存储到 阿里云 OSS 添加依赖 配置key upload file AliyunStorageService AliyunOssUtils",
      "keywords": [],
      "status": "document",
      "sha256": "0774a57c9fd90bb61385fcf572d146397741f679a9dbf8f4fad3b8bb13f726ac"
    },
    {
      "id": "zh/64_文件存储/readme.md",
      "title": "64_文件存储",
      "language": "zh-CN",
      "chapter": "zh/64_文件存储",
      "url": "https://tio-boot.com/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/64_%E6%96%87%E4%BB%B6%E5%AD%98%E5%82%A8/readme.md",
      "source": "zh/64_文件存储/readme.md",
      "description": "64_文件存储 本目录包含 8 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《文件上传数据表》。 : 文档《本地存储》。 : 文档《存储到 亚马逊 S3》。 : 文档《存储到 Cloudflare R2》。 : 文档《存储到 腾讯 COS》。 : 文档《存储到 阿里云 OSS》...",
      "keywords": [],
      "status": "document",
      "sha256": "1ec19e91ba87ef6d55b763ed51d747c824ceecd722d0fbf6800aa8e00408612b"
    },
    {
      "id": "zh/65_tio-mail-wing/01.md",
      "title": "tio-mail-wing简介",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/01.md",
      "source": "zh/65_tio-mail-wing/01.md",
      "description": "tio-mail-wing简介 核心目标 实现邮件接收服务 (SMTP)：能够接收来自其他邮件服务器（如 QQ、Gmail 发来的邮件）或邮件客户端（如 Foxmail、Outlook 发出的邮件）的邮件。 实现邮件读取服务 (POP3/IMAP)：允许邮件客户端（如 QQ 邮箱 App、Gmail App、Thunderbird）连接到我们的服务器，...",
      "keywords": [],
      "status": "document",
      "sha256": "82736905caf9b7e20fdcd0efefde5698511eb535fc860b530f44060695d1a3fb"
    },
    {
      "id": "zh/65_tio-mail-wing/02.md",
      "title": "任务1:实现POP3系统",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/02.md",
      "source": "zh/65_tio-mail-wing/02.md",
      "description": "任务1:实现POP3系统 POP3 协议详解 (Post Office Protocol version 3) POP3 是一种应用层协议，其全称为“邮局协议第3版”。顾名思义，它的工作模式非常像现实生活中的邮局信箱。 核心思想： 去邮局的信箱取信，把所有信件都拿出来带回家，然后的信箱就空了。在家阅读、整理、删除这些信件，这些操作都与邮局无关了。 PO...",
      "keywords": [],
      "status": "document",
      "sha256": "8f20b6a21fb83ab72ffc9f6f74f3d0581aa0533092eca202b8d8feb5dad62a9f"
    },
    {
      "id": "zh/65_tio-mail-wing/03.md",
      "title": "使用 getmail 验证 tio-mail-wing POP3 服务",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/03.md",
      "source": "zh/65_tio-mail-wing/03.md",
      "description": "使用 getmail 验证 tio-mail-wing POP3 服务 1. 简介 在完成了 tio-mail-wing 项目 POP3 服务的基础协议实现后，我们需要一个专业、健壮的客户端工具来进行全面和严格的验证。telnet 和 curl 适用于快速的、命令级的调试，而 getmail 则是一个成熟的、遵循 RFC 规范的邮件收取工具，它能模拟真...",
      "keywords": [],
      "status": "document",
      "sha256": "6047e2e281646e08b06e983a8ed9e52bc1155cb8e3c2d4386a4d7b140c473662"
    },
    {
      "id": "zh/65_tio-mail-wing/04.md",
      "title": "任务2：实现 SMTP 服务",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/04.md",
      "source": "zh/65_tio-mail-wing/04.md",
      "description": "任务2：实现 SMTP 服务 SMTP 协议详解 (Simple Mail Transfer Protocol) SMTP，全称为“简单邮件传输协议”，是互联网上传输电子邮件的核心协议。如果说 POP3 是“收信”的协议，那么 SMTP 就是“寄信和送信”的协议。 核心思想： 写好一封信，把它投进邮筒。邮递员（的 SMTP 服务器）会收走这封信，然后根...",
      "keywords": [],
      "status": "document",
      "sha256": "053fdd92744d6bffc26c0d25bbffc0c5c737b1bcfe8c7f1dd9f6ecfc69d746b1"
    },
    {
      "id": "zh/65_tio-mail-wing/05.md",
      "title": "数据库初始化文档",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/05.md",
      "source": "zh/65_tio-mail-wing/05.md",
      "description": "数据库初始化文档 1. 文档概述 本文档为 tio-mail-wing IMAP 邮件系统项目提供完整的 PostgreSQL 数据库初始化方案。方案包含两部分： 数据表结构定义 (DDL): 创建项目所需的所有核心数据表，其设计充分考虑了 IMAP 协议的特性、数据库性能优化以及未来的可扩展性。 基础数据填充 (DML): 初始化系统所需的默认用户及...",
      "keywords": [],
      "status": "document",
      "sha256": "764a206a2e3d08070a3f68864d84c0f55d6c38e0e4b1f93b18331648c5f013cf"
    },
    {
      "id": "zh/65_tio-mail-wing/06.md",
      "title": "用户管理",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/06.md",
      "source": "zh/65_tio-mail-wing/06.md",
      "description": "用户管理 1. 概述 MwUserService 是 tio-mail-wing 项目中负责处理所有用户相关业务逻辑的核心服务层组件。它的主要职责包括用户身份认证和用户信息查询，为上层应用（如 IMAP 的 LOGIN 命令处理模块）提供稳定、安全的接口。 2. 服务层实现 (MwUserService.java) 2.1. 类定义与职责 2.2. 核...",
      "keywords": [],
      "status": "document",
      "sha256": "1bafe21d7b9c133e136f7225651c97c2af54a435cdfd1c66d32f184eb86ba20f"
    },
    {
      "id": "zh/65_tio-mail-wing/07.md",
      "title": "邮件管理",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/07.md",
      "source": "zh/65_tio-mail-wing/07.md",
      "description": "邮件管理 mailbox.sql Email WhereClauseResult MailBoxService MailSaveAtom MailSaveService MailService",
      "keywords": [],
      "status": "document",
      "sha256": "a3772ac250959e63a60b27889e925bf69e7f8b1033d5f9314c4d7b583b54cdc3"
    },
    {
      "id": "zh/65_tio-mail-wing/08.md",
      "title": "任务3：实现 SMTP 服务 数据库版本",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/08.md",
      "source": "zh/65_tio-mail-wing/08.md",
      "description": "任务3：实现 SMTP 服务 数据库版本 1. 项目背景 该项目基于 TIO 框架，提供了一个完整的 SMTP 服务实现，支持以下特性： 使用 SMTP 协议处理邮件收发 支持 EHLO/HELO、AUTH LOGIN、MAIL FROM、RCPT TO、DATA、RSET、QUIT 等命令 将接收的邮件内容持久化到数据库（通过 MailService...",
      "keywords": [],
      "status": "document",
      "sha256": "84c069f86d22e6c97ee8ad0f849d4465a65f1a8b8d65c541acb1577bf0158e8d"
    },
    {
      "id": "zh/65_tio-mail-wing/09.md",
      "title": "任务4：实现 POP3 服务（数据库版本）",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/09.md",
      "source": "zh/65_tio-mail-wing/09.md",
      "description": "任务4：实现 POP3 服务（数据库版本） 本任务旨在基于 Tio 框架和已有的服务层（MwUserService、MailService 等）实现一个支持数据库交互的 POP3 服务器。本文档介绍了各个组件的功能及配置方法，并保留了原有代码示例。 项目结构 配置与启动：Pop3ServerConfig 负责读取配置、创建 Tio 服务实例并启动监听。...",
      "keywords": [],
      "status": "document",
      "sha256": "4b60d7e6869fcedbba05d68cad0df860b7cf387d32d0b17ad49214fc3dac53d3"
    },
    {
      "id": "zh/65_tio-mail-wing/10.md",
      "title": "IMAP 协议",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/10.md",
      "source": "zh/65_tio-mail-wing/10.md",
      "description": "IMAP 协议 IMAP（Internet Message Access Protocol）的实现要比 POP3、SMTP 复杂得多，因为它是有状态的、功能丰富的，且响应格式多样。我们将采用“最小可用”策略，先实现主流客户端所需的核心功能，使其能够连接服务器并收发邮件。 一、IMAP 协议概述 IMAP 与 POP3 并列，是另一种主流的邮件读取协议。...",
      "keywords": [],
      "status": "document",
      "sha256": "a4f46651f61e866409399dd3bf0e5c8e787f88772b508c9a50c04f94f263ba50"
    },
    {
      "id": "zh/65_tio-mail-wing/11.md",
      "title": "拉取多封邮件",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/11.md",
      "source": "zh/65_tio-mail-wing/11.md",
      "description": "拉取多封邮件 Recent标签是在什么时候清除的 根据 RFC 3501（IMAP4rev1）中对 \\Recent 标志的定义，它并不是在第一次 SELECT 之后立即清除的，而是一个“会话级”新邮件标记，其清除时机如下： 同一会话内的 SELECT/EXAMINE 不会清除它 当在同一个连接（session）里再次对同一信箱执行 SELECT 或 E...",
      "keywords": [],
      "status": "document",
      "sha256": "b15f1cbdcff9d56e0c8e810c38c1ac7562968af2288f1a8d6bb99d47a08158bb"
    },
    {
      "id": "zh/65_tio-mail-wing/12.md",
      "title": "任务5：实现 IMAP 服务（数据库版本）",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/12.md",
      "source": "zh/65_tio-mail-wing/12.md",
      "description": "任务5：实现 IMAP 服务（数据库版本） 任务概述 本任务旨在基于 T-IO 框架和数据库后端，实现一个完整的 IMAP 服务。系统包含以下几部分： ImapPacket：用于表示网络数据包的简单封装。 ImapSessionContext：会话级上下文，用于管理客户端状态、登录信息和当前选中邮箱。 ImapServerAioListener：连接级...",
      "keywords": [],
      "status": "document",
      "sha256": "5790e246aeb86e5dc10ebf8bbc3f272379e60521583cf8f691f4c56bd32bf9f3"
    },
    {
      "id": "zh/65_tio-mail-wing/13.md",
      "title": "IMAP实现讲解",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/13.md",
      "source": "zh/65_tio-mail-wing/13.md",
      "description": "IMAP实现讲解 1. 邮件格式内容示例 下面展示了一封存储在数据库中的邮件原始内容示例（包括头部和正文）： Message-ID：全局唯一标识符，由发件端或服务器生成。 Date：邮件发送或接收时间，含时区偏移。 MIME-Version、Content-Type：表明邮件的多媒体或字符集格式。 From/To/Subject：标准头部字段，分别指发...",
      "keywords": [],
      "status": "document",
      "sha256": "aa97b8d0078261fb4629239b27a241bda85a944f876d95cfe8f1df12f6193e64"
    },
    {
      "id": "zh/65_tio-mail-wing/14.md",
      "title": "IMAP 手动测试脚本",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/14.md",
      "source": "zh/65_tio-mail-wing/14.md",
      "description": "IMAP 手动测试脚本 前提条件 IMAP 服务器已启动，监听 127.0.0.1:143。（如端口不同，请将下面所有示例中的端口相应替换。） 已有用户 user1@tio.com，密码为 00000000。 本示例同时提供 telnet 和 curl 两种测试方式。 一、Telnet 交互测试 启动 Telnet 会话 成功连接后，应立即看到类似： ...",
      "keywords": [],
      "status": "document",
      "sha256": "1eb83d769b9bc68bdfb7f9ab2352ed6869623cac70ee361431eb0c8d07bf7b31"
    },
    {
      "id": "zh/65_tio-mail-wing/15.md",
      "title": "IMAP 认证机制",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/15.md",
      "source": "zh/65_tio-mail-wing/15.md",
      "description": "IMAP 认证机制 IMAP 协议支持多种认证方式，其中最常见的是： 两步验证（LOGIN）：客户端先请求用户名，再请求密码。 一步验证（PLAIN）：客户端一次性提交用户名和密码。 下面分别介绍这两种方式的报文流程及在服务端的实现。 一、两步验证（LOGIN） 报文流程 客户端发起 AUTHENTICATE LOGIN，服务端依次发送用户名和密码的 ...",
      "keywords": [],
      "status": "document",
      "sha256": "e2a4b9f0e9c844d1f5503c81f7da6b32d08999d9251e405f277a36ff61ca3b9d"
    },
    {
      "id": "zh/65_tio-mail-wing/16.md",
      "title": "主动推送",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/16.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/16.md",
      "source": "zh/65_tio-mail-wing/16.md",
      "description": "主动推送 服务端收到新邮件且客户端在线时,主动将邮件推送到客户端 报文 服务端再收到新邮件后向客户端发送的报文内容如下 报文讲解 是服务端在 IDLE 状态下“主动”发给客户端的无标签（untagged）通知，用来告诉客户端：当前信箱里共有 9 封邮件，其中 1 封是新近到达的。 详细来说，按照 IMAP 协议（RFC 3501）和其 IDLE 扩展（...",
      "keywords": [],
      "status": "document",
      "sha256": "c539c9751b5598a6a1b1370f80ae39637c36b420ab3bf70c2ff2dcecf3b3f020"
    },
    {
      "id": "zh/65_tio-mail-wing/17.md",
      "title": "namesapce",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/17.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/17.md",
      "source": "zh/65_tio-mail-wing/17.md",
      "description": "namesapce NAMESPACE 命令的作用是在 IMAP 会话中让客户端查询服务器上可用的邮箱命名空间（namespace），并获取每个命名空间对应的名称前缀（prefix）和层级分隔符（hierarchy delimiter）。具体来说，它告诉客户端： 个人命名空间（Personal Namespace） 客户自己的邮箱都放在哪个前缀下，以及...",
      "keywords": [],
      "status": "document",
      "sha256": "709addb2bd53d05ea0d1006efdaf0621b0aa7642d1064819daa49db6c9ab75df"
    },
    {
      "id": "zh/65_tio-mail-wing/18.md",
      "title": "CONDSTORE and QRESYNC",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/18.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/18.md",
      "source": "zh/65_tio-mail-wing/18.md",
      "description": "CONDSTORE and QRESYNC 核心思路是利用一个全局递增的“修改序号”（mod-seq）来标记每条消息的状态变动，然后让客户端带上自己上次同步时看到的 mod-seq，仅拉取自那以后“真正变动”过的消息（新邮件、标志改动或被删除），从而避免每次都要全量扫描、也不会把旧邮件当“新邮件”再次推送。 一、原理讲解 mod-seq（修改序号） 服...",
      "keywords": [],
      "status": "document",
      "sha256": "54ae3bb048fa1d43f86145ee4c35093a5ba124578f931fd3cc7f49ca7739e12d"
    },
    {
      "id": "zh/65_tio-mail-wing/readme.md",
      "title": "65_tio-mail-wing",
      "language": "zh-CN",
      "chapter": "zh/65_tio-mail-wing",
      "url": "https://tio-boot.com/zh/65_tio-mail-wing/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/65_tio-mail-wing/readme.md",
      "source": "zh/65_tio-mail-wing/readme.md",
      "description": "65_tio-mail-wing 本目录包含 19 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《tio-mail-wing简介》。 : 文档《任务1:实现POP3系统》。 : 文档《使用 getmail 验证 tio-mail-wing POP3 服务》。 : 文档《任务2：...",
      "keywords": [],
      "status": "document",
      "sha256": "872a77858e2e2a1bddd0c0960599adfb3d3ca8044bb244d6cef1e14939a1465e"
    },
    {
      "id": "zh/66_tio-mcp-server/01.md",
      "title": "实现 MCP Server 开发指南",
      "language": "zh-CN",
      "chapter": "zh/66_tio-mcp-server",
      "url": "https://tio-boot.com/zh/66_tio-mcp-server/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/66_tio-mcp-server/01.md",
      "source": "zh/66_tio-mcp-server/01.md",
      "description": "实现 MCP Server 开发指南 本文系统性讲解如何基于 tio-boot 从零实现一个符合 MCP（Model Context Protocol） 的 Server，并通过 SSE（Server-Sent Events） 与 MCP Client（如 openai-mcp）完成真实协议交互。文末保留了完整代码与完整抓包协议内容，便于对照实现细节与...",
      "keywords": [],
      "status": "document",
      "sha256": "ecc4b7938409ff163cc8273397d1a50d7056230b2dab787579ce654b4305b71d"
    },
    {
      "id": "zh/66_tio-mcp-server/08.md",
      "title": "MCP 协议",
      "language": "zh-CN",
      "chapter": "zh/66_tio-mcp-server",
      "url": "https://tio-boot.com/zh/66_tio-mcp-server/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/66_tio-mcp-server/08.md",
      "source": "zh/66_tio-mcp-server/08.md",
      "description": "MCP 协议 参考连接 https://www.bilibili.com/video/BV1NRQxYXEuc https://www.bilibili.com/video/BV1AnQNYxEsy https://www.bilibili.com/video/BV1P3XTYPEJm/",
      "keywords": [],
      "status": "document",
      "sha256": "2cb607d985548e49a2e4bfcd8772c9d3c0da8b151fa2cd253d3d95b2d99f2f04"
    },
    {
      "id": "zh/66_tio-mcp-server/11.md",
      "title": "zh/66_tio-mcp-server/11.md",
      "language": "zh-CN",
      "chapter": "zh/66_tio-mcp-server",
      "url": "https://tio-boot.com/zh/66_tio-mcp-server/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/66_tio-mcp-server/11.md",
      "source": "zh/66_tio-mcp-server/11.md",
      "description": "全网首发：从零搭建 Springboot+MCP+JUnit 项目 【搭配CherryStudio】 https://www.bilibili.com/video/BV1qUXkYRE6C/?spm_id_from=333.1007.tianma.1-3-3.click&vd_source=69e3cff470444b21e8c322dddec00def",
      "keywords": [],
      "status": "document",
      "sha256": "612269151ea425c1fe500308555b3ee8b01ec812a75503af758a2260bf44025d"
    },
    {
      "id": "zh/66_tio-mcp-server/readme.md",
      "title": "66_tio-mcp-server",
      "language": "zh-CN",
      "chapter": "zh/66_tio-mcp-server",
      "url": "https://tio-boot.com/zh/66_tio-mcp-server/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/66_tio-mcp-server/readme.md",
      "source": "zh/66_tio-mcp-server/readme.md",
      "description": "66_tio-mcp-server 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《实现 MCP Server 开发指南》。 : 文档《MCP 协议》。 : Markdown 文档。",
      "keywords": [],
      "status": "document",
      "sha256": "c7aaf045b386dbba8ef46e9dc563489fac444115e35faf6282138e368175a9cb"
    },
    {
      "id": "zh/67_tio-sip/01.md",
      "title": "SIP Server 第一版原理说明",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/01.md",
      "source": "zh/67_tio-sip/01.md",
      "description": "SIP Server 第一版原理说明 1. 目标 这一版系统的目标不是做一个完整的运营级 SIP 平台，而是先把最小链路跑通： 监听 SIP TCP 5060 和 SIP UDP 5060 接收终端发来的 INVITE 从本地动态分配一个 RTP 端口 返回带 SDP answer 的 200 OK 等待对端发送 ACK 对端开始往协商好的 RTP 端...",
      "keywords": [],
      "status": "document",
      "sha256": "a162264f605e7063e5b4c101a3208e348e76e5f25a873291b11a6bfc518c5889"
    },
    {
      "id": "zh/67_tio-sip/02.md",
      "title": "SIP Server 第一版实战",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/02.md",
      "source": "zh/67_tio-sip/02.md",
      "description": "SIP Server 第一版实战 1. 文档目标 本文介绍如何使用 tio-core 框架实现一个最小可运行的 SIP Echo 服务。 这个服务的目标不是做一个完整的 SIP 平台，而是先打通一条最关键的语音链路： 服务端同时监听 SIP TCP 5060 和 SIP UDP 5060 终端发起 INVITE 服务端解析 SIP 和 SDP 服务端动...",
      "keywords": [],
      "status": "document",
      "sha256": "6ef01d376ee8590f6286ea3e2954596effa5d7a63d0b931bd9e5a1bccb2cf895"
    },
    {
      "id": "zh/67_tio-sip/03.md",
      "title": "一、Windows 平台测试",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/03.md",
      "source": "zh/67_tio-sip/03.md",
      "description": "SIP 通话测试说明 本文档说明如何在 Windows、macOS 和 Android 平台上使用 SIP 软电话客户端进行基本的通话测试。测试目标是验证客户端是否能够通过指定的 SIP 地址发起呼叫。 测试使用示例地址： 该地址表示： 用户：1001 服务器：192.168.3.211 端口：5060 协议：SIP 一、Windows 平台测试 Wi...",
      "keywords": [],
      "status": "document",
      "sha256": "9e683e8c25c373d73976ca82d7de9c8af5fbc79e53fd8a04cf38c7401c8407e7"
    },
    {
      "id": "zh/67_tio-sip/04.md",
      "title": "SIP Server 第二版实战",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/04.md",
      "source": "zh/67_tio-sip/04.md",
      "description": "SIP Server 第二版实战 可以这么描述。 背景 当前项目基于 tio-core 自研了一个轻量级 SIP Server，用来承接语音呼叫接入，并为后续语音机器人、ASR/TTS、LLM 实时对话打基础。 第一版已经完成了最小链路验证，核心能力包括： 监听 SIP TCP 5060 和 SIP UDP 5060 收到 INVITE 后分配动态 R...",
      "keywords": [],
      "status": "document",
      "sha256": "817ff432536a2885e6f1bd3d0b44494eff9f6c3e40c2bd88613a7918f38f5339"
    },
    {
      "id": "zh/67_tio-sip/05.md",
      "title": "SIP Server 第三版实战",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/05.md",
      "source": "zh/67_tio-sip/05.md",
      "description": "SIP Server 第三版实战 可以这样描述第三版本。 背景 在前两个版本的基础上，SIP Server 已经逐步从“可跑通的最小 demo”演进为“具备基本协议能力的语音接入服务”。 第一版主要解决的是链路验证问题，完成了： SIP TCP/UDP 5060 接入 INVITE 建链 动态 RTP 端口分配 200 OK + SDP 返回 RTP ...",
      "keywords": [],
      "status": "document",
      "sha256": "9d3a3b03b0c70aeea49d867d782ff19f17e6a8c6ca208e85006a32a99fc04040"
    },
    {
      "id": "zh/67_tio-sip/06.md",
      "title": "性能优化",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/06.md",
      "source": "zh/67_tio-sip/06.md",
      "description": "性能优化 把 整个 CallSessionManager 优化成更高性能版本（避免 getByLocalRtpPort 的 O(n) 扫描，适合高并发 SIP server） 修改前 优化后 优化版本2",
      "keywords": [],
      "status": "document",
      "sha256": "72b07932dc099d4b08beb3c33fe289f36b88cc9befd3bb9a3d0fad56f64b2088"
    },
    {
      "id": "zh/67_tio-sip/07.md",
      "title": "基于 MediaProcessor 对接 Realtime 模型说明",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/07.md",
      "source": "zh/67_tio-sip/07.md",
      "description": "基于 MediaProcessor 对接 Realtime 模型说明 1. 系统整体流程 SIP Server 已经实现了完整的语音通话链路： SIP 建立通话 SDP 协商音频 codec（PCMU / PCMA） RTP 接收语音数据 解码为 PCM 音频 交给 MediaProcessor 处理 处理后的音频重新编码为 RTP 回发给通话对端 整...",
      "keywords": [],
      "status": "document",
      "sha256": "f5e4de130774eec9f32f23d5c98ababf4a3b0c04281bae75221a8c824acad0df"
    },
    {
      "id": "zh/67_tio-sip/08.md",
      "title": "对接大语言模型",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/08.md",
      "source": "zh/67_tio-sip/08.md",
      "description": "对接大语言模型 背景 原来的 SIP Server 已经把通话底座全部打通了，SIP 建链、SDP 协商、RTP 收发、G711 编解码这些底层能力都已经稳定存在。系统里真正留给业务扩展的点只有一个，就是 MediaProcessor。默认实现只是把收到的音频原样返回，所以表现出来就是回声。现在要做的事情，是把这个“回声处理器”替换成“实时模型处理器”...",
      "keywords": [],
      "status": "document",
      "sha256": "3051d69487cb2249ebaf248d363a3f8349ec9691c317b66a4db03bd63414113e"
    },
    {
      "id": "zh/67_tio-sip/09.md",
      "title": "支持 G722 宽带语音",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/09.md",
      "source": "zh/67_tio-sip/09.md",
      "description": "支持 G722 宽带语音 一、背景 当前项目基于 tio-core 自研了一套轻量级 SIP Server，用于承接语音呼叫接入，并为后续语音机器人、ASR、TTS、Realtime LLM 对话等能力提供底层通话链路。 在前几个阶段中，系统已经逐步完成了以下能力建设： 第一阶段：最小链路打通 第一版主要完成了 SIP 和 RTP 的基础连通性验证，具...",
      "keywords": [],
      "status": "document",
      "sha256": "e48917c452a1534159d7d7c0afe987c62b52b4675ba57312ba4a054c580a177e"
    },
    {
      "id": "zh/67_tio-sip/10.md",
      "title": "G722编码和解码",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/10.md",
      "source": "zh/67_tio-sip/10.md",
      "description": "G722编码和解码 一、背景 在前面的几轮演进中，当前项目已经完成了从 SIP 建链、SDP 协商、RTP 收发，到 MediaProcessor 媒体处理抽象，再到 Realtime 模型桥接的一整套基础能力建设。整体架构已经具备“电话接入 → 音频处理 → 模型交互 → RTP 回发”的完整闭环。 不过，在 codec 支持层面，系统此前主要围绕 ...",
      "keywords": [],
      "status": "document",
      "sha256": "547d48c4bee06d3d5cf155a213de89651a82bab355f6d98a154aef9a511a6d88"
    },
    {
      "id": "zh/67_tio-sip/11.md",
      "title": "会话级采样率转换",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/11.md",
      "source": "zh/67_tio-sip/11.md",
      "description": "会话级采样率转换 一、背景 在上一篇中，系统已经完成了 G722Codec 的接入，并基于 java-media-codec 为 RTP 层补齐了 G722 的实际编码和解码能力。到这一步，当前项目在 codec 维度上已经不再局限于 PCMU / PCMA 两种 G.711 窄带语音，而是具备了在 SDP 协商成功后进入 16k 宽带链路的能力。 不...",
      "keywords": [],
      "status": "document",
      "sha256": "4b67c1aa27906785a382acc620fa06cae78c0b45908ebe6e89f064817552bb86"
    },
    {
      "id": "zh/67_tio-sip/13.md",
      "title": "增加 9196 回声测试分机",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/13.md",
      "source": "zh/67_tio-sip/13.md",
      "description": "增加 9196 回声测试分机 一、背景 当前项目基于 tio-core 自研了一套轻量级 SIP Server，用于承接语音呼叫接入，并为后续语音机器人、ASR、TTS、Realtime LLM 对话等能力提供底层通话链路。 在前面的几个阶段中，系统已经逐步完成了以下能力： SIP TCP / UDP 监听 INVITE / ACK / BYE 基本流...",
      "keywords": [],
      "status": "document",
      "sha256": "cee4121ca61ee19d3ff50096d15dd256f0f5ca9e5954339af61d4d3c86d581c9"
    },
    {
      "id": "zh/67_tio-sip/14.md",
      "title": "语音系统链路说明",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/14.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/14.md",
      "source": "zh/67_tio-sip/14.md",
      "description": "语音系统链路说明 在 AI 电话系统中，音频通常会经过多个模块处理。 一个典型的语音处理链路如下： 该链路表示：电话网络使用 8k 语音，而 AI 模型通常使用 更高采样率 的音频进行处理，因此系统需要在不同阶段进行 采样率转换（Resample）。 整个流程可以分为三个主要阶段： 电话网络接入阶段 AI 模型处理阶段 语音回传阶段 下面对每个阶段进行...",
      "keywords": [],
      "status": "document",
      "sha256": "a7f39d83c4e19fe2d176a7362ddb86762122ba52a435b65968358962d0bcf82b"
    },
    {
      "id": "zh/67_tio-sip/15.md",
      "title": "一、Gemini Realtime 的打断机制",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/15.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/15.md",
      "source": "zh/67_tio-sip/15.md",
      "description": "当用户先提问，模型开始语音回答；在模型语音还没播完时，用户再次说话，希望“插话”或“打断”；但模型没有马上停下当前语音，而是继续把原来的语音输出完，或者至少继续输出一段。这就导致用户和模型同时说话，交互体验像“抢话”。 这个现象通常叫： barge-in failure 也就是“插话失败”或“打断失败” 可以，这个能力官方文档里是支持的。你现在要补的是...",
      "keywords": [],
      "status": "document",
      "sha256": "bfc43a54ec36dd6a36cd821a05bbc27c14aeeb5be4ad1c19113e66425926d3bf"
    },
    {
      "id": "zh/67_tio-sip/readme.md",
      "title": "67_tio-sip",
      "language": "zh-CN",
      "chapter": "zh/67_tio-sip",
      "url": "https://tio-boot.com/zh/67_tio-sip/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/67_tio-sip/readme.md",
      "source": "zh/67_tio-sip/readme.md",
      "description": "67_tio-sip 本目录包含 16 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《SIP Server 第一版原理说明》。 : 文档《SIP Server 第一版实战》。 : 文档《一、Windows 平台测试》。 : 文档《SIP Server 第二版实战》。 : 文档《...",
      "keywords": [],
      "status": "document",
      "sha256": "053db5f71f9197145561511f68f406a271350e1b8504629c6dd52d1e98230790"
    },
    {
      "id": "zh/68_tio-log-server/01.md",
      "title": "简介",
      "language": "zh-CN",
      "chapter": "zh/68_tio-log-server",
      "url": "https://tio-boot.com/zh/68_tio-log-server/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/68_tio-log-server/01.md",
      "source": "zh/68_tio-log-server/01.md",
      "description": "简介",
      "keywords": [],
      "status": "placeholder",
      "sha256": "a2feaf51055d0f86d54fb4110c6058be0541fbe4519e271cb2ab88de0ad2f667"
    },
    {
      "id": "zh/68_tio-log-server/02.md",
      "title": "收集 docker 日志",
      "language": "zh-CN",
      "chapter": "zh/68_tio-log-server",
      "url": "https://tio-boot.com/zh/68_tio-log-server/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/68_tio-log-server/02.md",
      "source": "zh/68_tio-log-server/02.md",
      "description": "收集 docker 日志",
      "keywords": [],
      "status": "placeholder",
      "sha256": "a69bc0c0fe8af25b31de68ef160bd4f513c69c148715d86d5221012584a6d5f1"
    },
    {
      "id": "zh/68_tio-log-server/03.md",
      "title": "入库",
      "language": "zh-CN",
      "chapter": "zh/68_tio-log-server",
      "url": "https://tio-boot.com/zh/68_tio-log-server/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/68_tio-log-server/03.md",
      "source": "zh/68_tio-log-server/03.md",
      "description": "入库",
      "keywords": [],
      "status": "placeholder",
      "sha256": "01033c595f47af4ad2306edc282ed50db3f1e44e6d62d074824aaa7dbfd81201"
    },
    {
      "id": "zh/68_tio-log-server/readme.md",
      "title": "68_tio-log-server",
      "language": "zh-CN",
      "chapter": "zh/68_tio-log-server",
      "url": "https://tio-boot.com/zh/68_tio-log-server/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/68_tio-log-server/readme.md",
      "source": "zh/68_tio-log-server/readme.md",
      "description": "68_tio-log-server 本目录包含 4 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《简介》。 : 文档《收集 docker 日志》。 : 文档《入库》。",
      "keywords": [],
      "status": "document",
      "sha256": "eca0b5f9f4d95436e9676b1707098286e20c78717edd49aee137118cd31d5a75"
    },
    {
      "id": "zh/69_性能测试/01.md",
      "title": "压力测试 - tio-http-serer",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/01.md",
      "source": "zh/69_性能测试/01.md",
      "description": "压力测试 - tio-http-serer 测试方式 通过 apache benchmark 工具进行压力测试 测试环境 JDK 信息： java version \"1.8.0_361\" Java(TM) SE Runtime Environment (build 1.8.0_361-b09) Java HotSpot(TM) 64-Bit Serve...",
      "keywords": [],
      "status": "document",
      "sha256": "12118ee1f1f161cf97847e4fd8f6cefda635bd060d31b76114e31c132500494b"
    },
    {
      "id": "zh/69_性能测试/02.md",
      "title": "压力测试 - tio-boot",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/02.md",
      "source": "zh/69_性能测试/02.md",
      "description": "压力测试 - tio-boot 1. 测试概述 本文档主要通过 ApacheBench (ab) 和 wrk 两种工具，对基于 [tio-boot][^1] 搭建的本地服务器进行高并发访问压力测试，以评估其在大规模请求场景下的性能表现和稳定性。 2. 环境与测试代码 代码开源地址 https://github.com/litongjava/tio-bo...",
      "keywords": [],
      "status": "document",
      "sha256": "7cafe2f43cfc66ea3ce1352f31e2df11328b926081d5627307510dabcf6790ae"
    },
    {
      "id": "zh/69_性能测试/03.md",
      "title": "压力测试 - tio-boot-native",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/03.md",
      "source": "zh/69_性能测试/03.md",
      "description": "压力测试 - tio-boot-native https://github.com/litongjava/tio-boot-http-request-handler-demo 测试结果",
      "keywords": [],
      "status": "document",
      "sha256": "3c6b716be9e435b9b0d085f95125994e254cb52b8c8a735c30470eba48e49f9b"
    },
    {
      "id": "zh/69_性能测试/04.md",
      "title": "压力测试 - netty-boot",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/04.md",
      "source": "zh/69_性能测试/04.md",
      "description": "压力测试 - netty-boot 测试代码 服务器配置 在进行性能测试之前，除了运行的 Netty 应用外，还需要确保操作系统和网络环境都做了相应的准备与调优。以下是一些常见的步骤和需要检查的配置命令： 1. 系统资源检查 CPU 和内存 确认服务器的 CPU 核心数和内存大小，确保有足够的资源应对高并发测试。 lscpu free -m cat /...",
      "keywords": [],
      "status": "document",
      "sha256": "678d99ed160e45633bcacfb440d9f3f41a87a30c0ddf2a12a7b92a299b639f2b"
    },
    {
      "id": "zh/69_性能测试/05.md",
      "title": "性能测试对比",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/05.md",
      "source": "zh/69_性能测试/05.md",
      "description": "性能测试对比 测试数据 java-aio netty-boot tio-boot 对比分析 根据提供的测试数据，以下是 Java AIO、Netty-Boot 以及 Tio-Boot 三个 Web 中间件在 ApacheBench 压力测试下的性能分析与对比： 1. 基本性能数据 2. 请求延迟分析 Java AIO 50% 的请求在 88 ms 内完...",
      "keywords": [],
      "status": "document",
      "sha256": "d3012b7d9fde4cab330e7c8a998832a6e42d7a219a80178520497833100d93b2"
    },
    {
      "id": "zh/69_性能测试/06.md",
      "title": "TechEmpower FrameworkBenchmarks",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/06.md",
      "source": "zh/69_性能测试/06.md",
      "description": "TechEmpower FrameworkBenchmarks 测试报告",
      "keywords": [],
      "status": "document",
      "sha256": "8657d39e1bdf40a8bb30cb992f6657b3ec18bbd4a96959e77d82125186f5894f"
    },
    {
      "id": "zh/69_性能测试/07.md",
      "title": "压力测试 - tio-boot 12 C 32G",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/07.md",
      "source": "zh/69_性能测试/07.md",
      "description": "压力测试 - tio-boot 12 C 32G 1. 测试概述 本文档主要通过 ApacheBench (ab) 和 wrk 两种工具，对基于 [tio-boot][^1] 搭建的本地服务器进行高并发访问压力测试，以评估其在大规模请求场景下的性能表现和稳定性。 2. 环境与测试代码 代码开源地址 https://github.com/litongja...",
      "keywords": [],
      "status": "document",
      "sha256": "9cf37955366e154425222d4c88ead44ec4ce7f06e3f767c9c4227816ee6db3b2"
    },
    {
      "id": "zh/69_性能测试/08.md",
      "title": "HTTP/1.1 Pipelining 性能测试报告",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/08.md",
      "source": "zh/69_性能测试/08.md",
      "description": "HTTP/1.1 Pipelining 性能测试报告 本文通过使用 wrk 工具对开启和关闭 HTTP/1.1 pipeline 时服务器的性能进行对比测试。 测试环境 工具: wrk 测试地址: http://127.0.0.1:8080/plaintext 测试时长: 60 秒 线程数: 4 并发连接数: 256 超时时间: 8 秒 开启 Pipe...",
      "keywords": [],
      "status": "document",
      "sha256": "179bc0296b55984e7ed1d9dba72e2fdd6730a9ccb620899fe1c09ce5f8f59d2c"
    },
    {
      "id": "zh/69_性能测试/09.md",
      "title": "tio-boot vs Quarkus 性能对比测试报告",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/09.md",
      "source": "zh/69_性能测试/09.md",
      "description": "tio-boot vs Quarkus 性能对比测试报告 1. 测试目的 对比 tio-boot 与 Quarkus 在相同硬件环境、相同并发模型下的 HTTP /plaintext 接口性能，重点关注： 吞吐量（Requests Per Second, RPS） 平均延迟 尾延迟（P99 / Max） 在 Keep-Alive 场景下的稳定性 该测试...",
      "keywords": [],
      "status": "document",
      "sha256": "2dc7dbfd04c7559029284c30661226230e8c4edc9c38aaf48e3958fdbe512b7f"
    },
    {
      "id": "zh/69_性能测试/readme.md",
      "title": "69_性能测试",
      "language": "zh-CN",
      "chapter": "zh/69_性能测试",
      "url": "https://tio-boot.com/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/69_%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95/readme.md",
      "source": "zh/69_性能测试/readme.md",
      "description": "69_性能测试 本目录包含 10 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《压力测试 - tio-http-serer》。 : 文档《压力测试 - tio-boot》。 : 文档《压力测试 - tio-boot-native》。 : 文档《压力测试 - netty-boot...",
      "keywords": [],
      "status": "document",
      "sha256": "71a701c0f53dedec747a5c65b3662f4ba38e2faa5a97615bc41a4731383b0337"
    },
    {
      "id": "zh/70_tio-boot/01.md",
      "title": "源码阅读入口",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/01.md",
      "source": "zh/70_tio-boot/01.md",
      "description": "源码阅读入口 本目录解释 tio-boot 的启动、请求分发和底层网络实现。应用开发先阅读入门与 Web 章节；排查初始化顺序、路由优先级或请求生命周期时再进入本目录。 阅读顺序 ：TioApplication 如何创建上下文，配置何时执行，资源如何关闭。 ：上下文路径、拦截器、Handler、Controller 和静态资源。 ：网络协议处理入口。 ...",
      "keywords": [],
      "status": "document",
      "sha256": "456fb3ed4cfa7fe09798c6c41d0e8e5bd687759fc8a779463e1b0509cb563451"
    },
    {
      "id": "zh/70_tio-boot/02.md",
      "title": "Swagger 整合到 Tio-Boot 中的指南",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/02.md",
      "source": "zh/70_tio-boot/02.md",
      "description": "Swagger 整合到 Tio-Boot 中的指南 本文档介绍了如何将 Swagger 整合到 Tio-Boot 项目中。 添加依赖 在 pom.xml 文件中添加以下依赖： 注意：Swagger 会增加项目的打包体积，因此不推荐在生产环境中使用。 Swagger 图示 加载静态文件 swagger-bootstrap-ui 的静态资源位于以下目录： ...",
      "keywords": [],
      "status": "document",
      "sha256": "1ad2fed4f2e954190589fc18419aea14c37764dd8286d2551806d60e4b2bd32a"
    },
    {
      "id": "zh/70_tio-boot/03.md",
      "title": "启动与关闭生命周期",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/03.md",
      "source": "zh/70_tio-boot/03.md",
      "description": "启动与关闭生命周期 本章依据 TioApplication 和 TioApplicationContext 当前 nexus.io 源码。用于理解配置顺序，不要求业务工程复制这些内部实现。 启动入口 TioApplication.run(...) 创建 TioApplicationContext，调用其 run 并返回 Context。可传入主类进行扫...",
      "keywords": [],
      "status": "document",
      "sha256": "39efc24f545cdbd0867fce4aa73b29feb783e9f3ba99945d57085ebca87fa5ae"
    },
    {
      "id": "zh/70_tio-boot/04.md",
      "title": "HTTP 请求分发与路由优先级",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/04.md",
      "source": "zh/70_tio-boot/04.md",
      "description": "HTTP 请求分发与路由优先级 本章介绍 TioBootHttpRequestDispatcher 的请求分发流程与 DefaultHttpRequestRouter 的路由匹配规则。 请求链 域名与路径处理 → CORS 预检（启用且带 Origin / Access-Control-Request-Method）→ Session / 限流 → 请...",
      "keywords": [],
      "status": "document",
      "sha256": "3f68bf6f671260a38552bd66ad1b5f2918227f262361dd484e994063c8be0160"
    },
    {
      "id": "zh/70_tio-boot/05.md",
      "title": "高性能网络编程中的 ByteBuffer 分配与回收策略",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/05.md",
      "source": "zh/70_tio-boot/05.md",
      "description": "高性能网络编程中的 ByteBuffer 分配与回收策略 —— 基于 t-io 的实践优化 背景 在 Java NIO 网络编程中，ByteBuffer 是最基础的 I/O 缓冲容器。 默认情况下，很多框架会在发送响应时直接调用： 这种“临时分配 → 写出 → 交由 GC 回收”的模式，在高并发场景下会遇到几个问题： GC 压力大：短生命周期的 Byt...",
      "keywords": [],
      "status": "document",
      "sha256": "fe66b13cca46e3f6e959fbd39a117c3fe3e4e5fd9a11be78eb0eb1b96db0b49d"
    },
    {
      "id": "zh/70_tio-boot/06.md",
      "title": "TioBootServerHandler 源码解析",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/06.md",
      "source": "zh/70_tio-boot/06.md",
      "description": "TioBootServerHandler 源码解析 TioBootServerHandler 的 decode 方法",
      "keywords": [],
      "status": "document",
      "sha256": "eb3619bea994277002fd38e582c8b03f82872b279be812b6242600bbf537e5fe"
    },
    {
      "id": "zh/70_tio-boot/readme.md",
      "title": "70_tio-boot",
      "language": "zh-CN",
      "chapter": "zh/70_tio-boot",
      "url": "https://tio-boot.com/zh/70_tio-boot/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/70_tio-boot/readme.md",
      "source": "zh/70_tio-boot/readme.md",
      "description": "70_tio-boot 本目录包含 9 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《源码阅读入口》。 : 文档《Swagger 整合到 Tio-Boot 中的指南》。 : 文档《启动与关闭生命周期》。 : 文档《HTTP 请求分发与路由优先级》。 : 文档《高性能网络编程中的...",
      "keywords": [],
      "status": "document",
      "sha256": "8ac11927738bea735c020fa48586e59ff28cdc3cf0e17b49fac04f812f4ac37d"
    },
    {
      "id": "zh/71_案例/01.md",
      "title": "封装 IP 查询服务",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/01.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/01.md",
      "source": "zh/71_案例/01.md",
      "description": "封装 IP 查询服务 在互联网应用中，获取用户的地理位置信息是一项常见且重要的功能。本文将详细介绍如何封装一个基于百度 IP 查询服务的 IP 服务，包括从申请百度 API 密钥到实现完整的业务逻辑。通过本文，您将学会如何搭建一个高效、可缓存的 IP 查询服务，减少对百度 API 的调用次数，从而降低成本。 文章目的 本文旨在为开发者提供一个完整的、可...",
      "keywords": [],
      "status": "document",
      "sha256": "6b258bc03f0a58169c2b26634cb9be3f80aad5de1ad636c53db909514e2aec63"
    },
    {
      "id": "zh/71_案例/02.md",
      "title": "tio-boot 案例 - 全局异常捕获与企业微信群通知",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/02.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/02.md",
      "source": "zh/71_案例/02.md",
      "description": "tio-boot 案例 - 全局异常捕获与企业微信群通知 简介 在现代应用的开发中，稳定性和健壮性是至关重要的。生产环境中难免会遇到不可预见的异常，如何及时发现和处理这些异常是每个开发者和运维团队关心的问题。tio-boot 作为一款轻量级高性能框架，可以通过集成企业通知服务（如企业微信、飞书等）实现对异常的实时监控和告警。本文将介绍如何在 tio-b...",
      "keywords": [],
      "status": "document",
      "sha256": "d5ba8ea93db4ab967d7145a5c46c4a93a0d2a1c5a7ff4b4fa6a1a72cef4bea80"
    },
    {
      "id": "zh/71_案例/03.md",
      "title": "tio-boot 案例 - 文件上传和下载",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/03.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/03.md",
      "source": "zh/71_案例/03.md",
      "description": "tio-boot 案例 - 文件上传和下载 添加依赖 数据表 创建一张数据表,保持上传的数据 配置文件 app.properties 启动类 配置类 实体类 常量类 UPlOAD_FOLDER_NAME 保持文件上传路径 service controller 上传文件 请求示例 响应示例 下载文件 http://localhost/file/downl...",
      "keywords": [],
      "status": "document",
      "sha256": "8c5fb8676805f70719cc745ca59850c6cdf79d86ffe95cbf6af7a0ec0bcb9673"
    },
    {
      "id": "zh/71_案例/04.md",
      "title": "tio-boot 案例 - 整合 ant design pro 增删改查",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/04.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/04.md",
      "source": "zh/71_案例/04.md",
      "description": "tio-boot 案例 - 整合 ant design pro 增删改查 前端界面 data.d.ts service.ts column.tsx PostCreateForm.tsx index.tsx",
      "keywords": [],
      "status": "document",
      "sha256": "d662e9a7c07aa84462ea9456650c45546b30a38b437a96ee83ac33ccb656c29e"
    },
    {
      "id": "zh/71_案例/05.md",
      "title": "tio-boot 案例 - 流失响应",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/05.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/05.md",
      "source": "zh/71_案例/05.md",
      "description": "tio-boot 案例 - 流失响应 Introudction 使用 tio-boot 框架的 handler 组件从 openai chatgpt 获取流程响应并以流式的方法返回给客户端 使用了tio-boot框架，集成了与 OpenAI ChatGPT 进行交互的功能，并以服务器发送事件（Server-Sent Events, SSE）方式流式返回...",
      "keywords": [],
      "status": "document",
      "sha256": "ba36413f4ac6a9b16cd8598b89389da8506358324e2a400c9bf40b40118eabf6"
    },
    {
      "id": "zh/71_案例/06.md",
      "title": "tio-boot 案例 - 增强检索",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/06.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/06.md",
      "source": "zh/71_案例/06.md",
      "description": "tio-boot 案例 - 增强检索 这篇文章主要介绍,如何使用 tio-boot 框架的其他相关框架完成下面的功能 爬取数据:编写爬虫从网页上爬取数据 数据入库:将爬取的数据存入数据库,这里使用 postgre 数据库 向量化:将入库后的数据的部分字段进行向量化并入库,方便后续搜索 定时任务:使用定时任务每 1 小时更新整体的数据 网页数据分析 这里...",
      "keywords": [],
      "status": "document",
      "sha256": "c912f42a8857721e0a20dadfa0f32e9e0bef82fc53bde6e72066f8811cbffe13"
    },
    {
      "id": "zh/71_案例/07.md",
      "title": "tio-boot 案例 - 整合 function call",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/07.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/07.md",
      "source": "zh/71_案例/07.md",
      "description": "tio-boot 案例 - 整合 function call function call 简介 Function Call 的典型案例 —— 天气查询插件。 问「我明天应该穿什么？」此时 GPT 完全理解了我的问题，而且知道穿衣建议是需要了解相关天气情况的。因此它问了我在哪个城市，并且在获得该信息后，调用了天气查询插件。并基于天气查询返回的结果，告诉了...",
      "keywords": [],
      "status": "document",
      "sha256": "3f5e4a376e2cef78ea6194ff6d7fefe818e70794a3e45cca4cb73253a0f68643"
    },
    {
      "id": "zh/71_案例/08.md",
      "title": "tio-boot 案例 - 定时任务 监控 PostgreSQL、Redis 和 Elasticsearch",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/08.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/08.md",
      "source": "zh/71_案例/08.md",
      "description": "tio-boot 案例 - 定时任务 监控 PostgreSQL、Redis 和 Elasticsearch 背景介绍 在现代的应用程序中，服务的可靠性和稳定性至关重要。为了确保系统在出现问题时能够及时发现并采取措施，对关键服务的监控显得尤为重要。本项目使用了 Tio-boot 框架，结合 PostgreSQL、Redis 和 Elasticsearc...",
      "keywords": [],
      "status": "document",
      "sha256": "723152d7a1e6e08f8921d89865fc5b21dc99165144c5f61b5202ec2c87efc266"
    },
    {
      "id": "zh/71_案例/09.md",
      "title": "Tio-Boot 案例：使用 SQLite 整合到登录注册系统",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/09.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/09.md",
      "source": "zh/71_案例/09.md",
      "description": "Tio-Boot 案例：使用 SQLite 整合到登录注册系统 本文提供了一个使用 tio-boot 将 SQLite 整合到登录和注册系统的完整指南。内容包括 HTTP API 规范、数据库设计、初始化数据、Java 实现、拦截器以及与前端的集成。 HTTP API 规范 1. 用户登录 接口：POST /api/login/account 请求体：...",
      "keywords": [],
      "status": "document",
      "sha256": "31e026475bf8a7eb01cd02586bdc9e6ce43302068cddb24b72f9d2c15c63e277"
    },
    {
      "id": "zh/71_案例/10.md",
      "title": "tio-boot 案例 - 执行 shell 命令",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/10.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/10.md",
      "source": "zh/71_案例/10.md",
      "description": "tio-boot 案例 - 执行 shell 命令",
      "keywords": [],
      "status": "document",
      "sha256": "77f54ab8efa93a747af53b13469a9c1818695c1c1e5aabd052f08b3e7af2ee42"
    },
    {
      "id": "zh/71_案例/11.md",
      "title": "zh/71_案例/11.md",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/11.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/11.md",
      "source": "zh/71_案例/11.md",
      "description": "题目：基于 Java 的 Tio-Boot 框架实现简单登录系统 一、项目背景 某网站需要开发一个「用户登录模块」，以便已注册用户通过账号和密码登录系统，访问受保护的页面。请使用 Java + tio-boot 框架 完成一个最小可用的登录系统，并满足以下功能与非功能性要求。 二、功能要求 项目基础环境 使用 tio-boot 搭建 HTTP 服务，端...",
      "keywords": [],
      "status": "document",
      "sha256": "877ef51d3ea1a66d1769d3c3814b9f2caf0ee7aa578d52b7eb64e4df664b46b3"
    },
    {
      "id": "zh/71_案例/12.md",
      "title": "zh/71_案例/12.md",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/12.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/12.md",
      "source": "zh/71_案例/12.md",
      "description": "Frontend Interview Task Edge Saved – Article Bookmarking App Time Limit 1 hour Goal Build a small server-side rendered web application using Cloudflare Workers and React Router ...",
      "keywords": [],
      "status": "document",
      "sha256": "c9475ce4d657748269c4cc00b3cfacbf9bd66bae7071acf5f88d16a4dd045fb8"
    },
    {
      "id": "zh/71_案例/13.md",
      "title": "zh/71_案例/13.md",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/13.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/13.md",
      "source": "zh/71_案例/13.md",
      "description": "题目：基于 Go 的 Hertz 框架实现一个简单登录系统 一、项目背景 请使用 Go 语言 + Hertz 框架 开发一个最小可用的用户登录系统，实现基本的认证与会话管理功能。 二、功能要求 基础环境 使用 Hertz 搭建 HTTP 服务（端口不限）。 使用 Go Modules 管理依赖，项目能正常启动并接收请求。 用户数据 使用任意方式存储用户...",
      "keywords": [],
      "status": "document",
      "sha256": "3b0c4e8372cda0efcb0bce37d38d299e724f2804005065e262bdb067a50ee7df"
    },
    {
      "id": "zh/71_案例/readme.md",
      "title": "71_案例",
      "language": "zh-CN",
      "chapter": "zh/71_案例",
      "url": "https://tio-boot.com/zh/71_%E6%A1%88%E4%BE%8B/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/71_%E6%A1%88%E4%BE%8B/readme.md",
      "source": "zh/71_案例/readme.md",
      "description": "71_案例 本目录包含 14 个文件和 0 个子目录，下列摘要基于文件名、一级标题或资源类型整理。 文件清单 : 当前目录的导航与文件摘要。 : 文档《封装 IP 查询服务》。 : 文档《tio-boot 案例 - 全局异常捕获与企业微信群通知》。 : 文档《tio-boot 案例 - 文件上传和下载》。 : 文档《tio-boot 案例 - 整合 a...",
      "keywords": [],
      "status": "document",
      "sha256": "c5ef016b873e9ac8b2265e3de0466209a3946edd3d68908b3f6e39fe1e1218d3"
    },
    {
      "id": "zh/modecular_structure.md",
      "title": "zh/modecular_structure.md",
      "language": "zh-CN",
      "chapter": "zh/modecular_structure.md",
      "url": "https://tio-boot.com/zh/modecular_structure.html",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/modecular_structure.md",
      "source": "zh/modecular_structure.md",
      "description": "已将 “Lewis Structure” 栏改为 ASCII 示意结构，不再使用 AXE 简写：",
      "keywords": [],
      "status": "document",
      "sha256": "ec30083fe54c5f9b42347713f7253ab0aed735d0dde3627ba694df72eda7853d"
    },
    {
      "id": "zh/README.md",
      "title": "Home",
      "language": "zh-CN",
      "chapter": "zh/overview",
      "url": "https://tio-boot.com/zh/",
      "markdownUrl": "https://tio-boot.com/ai/pages/zh/README.md",
      "source": "zh/README.md",
      "description": "::: slot footer MIT Licensed | Copyright © 2023-present litongjava :::",
      "keywords": [],
      "status": "document",
      "sha256": "80fd4769d0732adb76473dc74944296efb29dc8cb9c1a0841b8dae6339220cf5"
    }
  ]
}
