乐于分享
好东西不私藏

SpringBoot AI 工具架构:业务与模型解耦、模块边界划分实战

SpringBoot AI 工具架构:业务与模型解耦、模块边界划分实战

SpringBoot AI 工具架构:业务与模型解耦、模块边界划分实战

哈喽各位码农小伙伴~

不知道大家有没有踩过这么一个大坑:本来只想做一个简单的AI小工具,比如AI文案改写、智能数据提取、图片识别解析,前期开发快到飞起,一周搞定上线,老板直夸效率高。结果上线迭代两个月后,代码直接变成一锅“八宝粥”。

改一个AI提示词,业务逻辑崩了;换一个大模型接口,前端展示报错;优化个业务规则,AI推理链路直接超时。最崩溃的是,新人接手代码,看三天源码依旧一脸懵,完全分不清哪段是业务逻辑、哪段是AI能力、哪段是通用工具。

这就是中小型AI工具项目最致命的通病——业务逻辑和AI能力深度耦合

很多做中小型AI系统的团队都有个误区:项目小、功能简单,没必要搞复杂架构,能跑就行。但无数实战经验证明:AI项目烂尾、迭代卡死、重构返工,90%都是边界不分、耦合过重导致的

大企业有专门架构师兜底、有规范流程约束,而中小团队、个人开发者、初创项目,最需要的就是轻量、清晰、低成本、零冗余的模块边界划分方案,不用过度设计,又能彻底规避业务与AI耦合的烂代码陷阱。

今天这篇干货,我就用大白话、唠嗑式,结合中小型AI工具的真实落地场景,手把手拆解AI系统模块边界划分方法论、标准分层架构、避坑要点、实战落地规范。全程不堆砌晦涩理论,只讲能直接落地、能解决实际问题的方案,看完直接告别AI架构混乱问题!


一、先唠明白:为啥中小型AI工具最容易耦合崩盘?

首先纠正一个绝大多数人的认知误区:耦合混乱不是大项目的专属问题,而是中小AI项目的重灾区

大型AI系统有人专职做架构分层、梳理边界、制定规范,而中小型AI工具项目普遍有这几个特点:

  • 开发周期短:需求急、上线快,优先实现功能,完全忽略架构设计

  • 人员少:1-3个开发包办所有工作,后端写AI调用、写业务逻辑、写数据处理,一人全包无需分工,自然无边界

  • 需求迭代杂:今天加个模型微调、明天加个业务校验、后天改个返回格式,迭代全靠堆代码

  • 技术认知偏差:觉得AI能力只是一个“接口调用”,没必要单独分层封装

于是就诞生了最经典的反面教材代码结构,相信很多小伙伴都写过、见过:

控制器层里直接写大模型调用、业务逻辑里硬写Prompt模板、AI推理结果校验和业务数据校验混在一起、模型异常重试和业务报错兜底写在同一个方法里。

这种代码短期爽翻天,5分钟实现一个功能,长期坑到吐血,后遗症直接拉满:

1.模型切换成本极高

原本用GPT-3.5,后续想换4o、换通义千问、换本地开源模型,结果发现业务代码里到处散落着模型参数、请求格式、Prompt文本,换模型等于重写一半代码。

2.业务迭代不敢动AI逻辑

想优化一个业务规则、调整一个返回字段,生怕改动触发AI推理异常、上下文丢失、格式解析失败,迭代畏手畏脚,效率极低。

3.问题排查完全抓瞎

用户反馈结果不对、推理超时、内容错乱,根本分不清是业务参数传错了、Prompt写得有问题、模型本身输出异常、还是数据预处理出错,排查全靠猜。

4.无法独立优化、复用能力

AI文本清洗、结果格式化、通用推理能力,无法脱离当前业务复用;想单独优化AI响应速度、提升输出准确率,必须联动修改业务代码。

说白了,业务与AI耦合的本质,就是把“可变的业务规则”和“可变的AI能力”揉成了一团乱麻。两种不同迭代节奏、不同变更频率、不同稳定度的代码强行绑定,项目越做越臃肿,崩盘只是时间问题。


二、核心思想:AI系统解耦的终极底层逻辑

在讲具体模块划分之前,我们先定一个核心基调,也是全文的核心精髓,记住这一句话就够:

业务层只关心“要什么结果”,AI层只关心“怎么产出结果”,两者永不跨界

很多人边界划分混乱,根源就是搞反了职责。

业务层的核心职责:处理用户需求、权限校验、业务规则、数据流转、结果落地、状态管理,它根本不需要知道背后是大模型、规则引擎、还是人工处理。

AI能力层的核心职责:模型调用、Prompt管理、参数适配、结果解析、异常重试、推理优化,它完全不需要关心这个结果是给谁用、用来做什么业务、落地到哪张数据表。

基于这个核心逻辑,我们可以提炼出适配中小型AI工具的三大解耦原则,简单好记、落地性极强:

1.单一责任原则:各模块只干自己的事

这是模块化设计的基础,每个模块聚焦单一能力,不跨界、不越权。AI模块只负责AI推理相关工作,业务模块只负责业务流程处理,工具模块只负责通用能力支撑,彻底杜绝“万能类、万能方法”。

2.依赖倒置原则:业务依赖抽象,不依赖实现

业务层永远不要直接调用具体的模型接口、具体的AI处理方法。只依赖统一的抽象接口,底层更换模型、优化AI逻辑、调整推理规则,上层业务代码完全不用改,真正实现底层无感迭代

3.开放封闭原则:扩展开放,修改关闭

新增AI能力、新增业务场景,通过新增模块、新增实现类完成,不修改原有成熟代码。避免老功能随着新迭代不断被改动,减少线上bug风险。

掌握这三个原则,不管你是做AI文案工具、智能问答、数据解析、图像识别、代码辅助工具,模块边界划分都不会出错


三、中小型AI工具专属分层架构

大企业的AI架构动不动十几层、数十个微服务,中小团队根本hold不住,属于过度设计。今天给大家分享一套专为中小型AI工具量身打造的五层轻量架构,不冗余、不简陋,完美适配小团队、快迭代、低成本的场景。

从上到下依次:接入层 → 业务应用层 → AI调度层 → AI能力层 → 基础底座层

每一层边界绝对清晰、职责完全隔离、通信规则统一,下面逐层拆解,附带禁止跨界规则,帮大家彻底踩坑。

1.接入层:所有请求的统一入口(门面)

核心职责:接收所有外部请求,包括前端页面、第三方API、定时任务、客户端调用,只做参数校验、权限校验、请求转发、响应封装、全局异常捕获

绝对禁止做的事:禁止写任何业务逻辑、禁止调用AI能力、禁止处理数据细节。

这一层就是系统的“门卫”,只负责开门放行、身份核验、统一返回格式,不参与核心业务和AI计算。哪怕后续接入小程序、APP、第三方对接接口,只需要改接入层,底层逻辑完全不用动。

2.业务应用层:纯业务逻辑,零AI代码

核心职责:串联整个业务流程,定义业务规则、控制业务状态、处理业务数据、完成数据落地、组装业务上下文。

举个例子:做AI文案改写工具,业务层需要处理的是“用户是否开通会员、今日是否超限、改写内容是否合规、改写成功后如何保存、如何记录用户日志、如何统计次数”。

绝对禁止做的事:禁止写Prompt、禁止拼接模型请求参数、禁止解析模型原始返回结果、禁止处理AI重试逻辑。

业务层想要获取AI结果,只需要调用AI调度层的统一抽象接口,传入标准化业务入参,接收标准化出参即可,完全不用关心背后是哪个模型、怎么计算、怎么解析。

这就是解耦的关键:业务层彻底和AI实现绝缘

3.AI调度层:全局AI总指挥(核心解耦枢纽)

这是整个架构的灵魂模块,也是很多项目缺失的关键层,绝大多数耦合问题,都是少了这一层导致的。

核心职责:AI能力路由、场景匹配、参数适配、上下文管理、流量控制、降级熔断、任务编排。

简单说,业务层下发AI需求,调度层负责判断:该用哪个模型、该加载哪个Prompt模板、该用哪种处理策略、是否需要重试、是否需要降级、是否需要拼接上下文。

边界亮点:调度层只做“调度决策”,不做具体的模型调用和数据处理,完美承接业务层和AI能力层,实现双向解耦。

4.AI能力层:纯AI技术实现,零业务逻辑

核心职责:聚焦纯粹的AI技术实现,包含模型调用、Prompt渲染、数据预处理、结果后处理、格式解析、异常处理、推理优化。

这一层可以拆分多个细分子模块:模型对接模块、Prompt管理模块、数据清洗模块、结果格式化模块、AI重试容错模块。

绝对禁止做的事:禁止判断用户权限、禁止处理业务状态、禁止操作业务数据表、禁止写业务规则。

AI能力层是纯粹的技术底座,完全通用。你在这一层写的AI文本处理、结果解析能力,可以无缝复用在任何业务场景,不用重复开发。

5.基础底座层:全局通用支撑

核心职责:提供全局通用能力,缓存、日志、数据库、文件存储、消息队列、配置中心、工具类、监控告警。

这一层不参与任何业务流程、不参与任何AI推理,只为上层所有模块提供底层支撑,是整个系统的公共基础设施。


四、关键模块边界精细划分

看懂分层架构只是基础,真正落地不踩坑,靠的是精细化模块边界定义。很多项目分层了但依旧耦合,就是因为模块内部职责、交互规则没定义清楚。

下面给大家整理出中小型AI工具最核心的几组边界划分细则,直接对照落地即可。

1.业务模块 VS AI能力模块:泾渭分明的红线

我用一张通俗的对比,帮大家彻底分清两者边界:

业务模块负责“人、权限、流程、数据、规则”

  • 用户身份校验、会员权限、次数限制

  • 业务参数合法性校验、业务场景判断

  • AI结果的业务落地、数据存储、日志记录

  • 业务状态流转、成功失败的业务兜底

AI能力模块负责“模型、Prompt、推理、解析、容错”

  • 各大模型接口适配、密钥管理、请求封装

  • Prompt模板配置、动态参数渲染、版本管理

  • 输入文本清洗、脱敏、截断、格式统一

  • 模型返回结果解析、结构化转换、异常识别

  • 超时重试、失败兜底、限流熔断

核心交互规则:业务模块只能调用AI调度层的统一接口,传入标准化业务DTO,接收标准化AI结果DTO,全程不感知AI底层实现。

2.AI调度层 VS AI能力层:决策与执行分离

很多人会把调度和能力写在一起,导致新增模型、新增场景就需要改核心代码,这是典型的边界模糊问题。

调度层 = 决策者:根据场景编码、业务类型、用户配置,决定用哪个模型、哪个Prompt、哪种处理策略。

能力层 = 执行者:接收调度指令,老老实实完成模型调用、数据处理、结果返回。

这种分离的巨大优势:后续新增AI场景、新增模型,只需要在调度层新增路由规则,在能力层新增对应实现,原有代码零改动,完美符合开闭原则。

3.Prompt模块独立拆分:杜绝代码硬编码

中小型AI项目最常见的耦合bug:Prompt字符串硬编码在业务代码、AI调用代码中。改一句提示词,就要重新打包上线,极其低效,还容易引发连锁bug。

所以必须单独拆分Prompt管理子模块,边界规则如下:

  • 所有Prompt统一存放,支持配置化、版本化、场景化管理

  • 支持动态渲染,通过占位符接收业务参数,不依赖业务代码

  • AI能力层只负责读取模板、渲染参数,不自定义Prompt内容

  • 业务层完全不接触Prompt,不需要关心AI如何提问

这样后续优化Prompt、调整话术、适配场景,直接改配置即可,无需改代码、无需重启服务。

4.数据预处理/后处理模块:独立解耦

AI对输入输出格式极其敏感,很多报错都是数据格式不匹配导致的。建议单独拆分数据处理模块,边界独立:

  • 预处理:文本清洗、去特殊字符、脱敏、长度截断、格式统一

  • 后处理:模型返回文本解析、JSON提取、字段适配、空值兜底

该模块只依赖原始数据,不依赖业务场景、不依赖模型类型,属于纯通用技术能力,可以全局复用。


五、实战对比:耦合烂架构 VS 解耦好架构

光讲理论太枯燥,我直接用大家最熟悉的AI文案改写工具场景,做前后对比,一眼看懂差距。

反面案例:典型耦合架构(千万别这么写)

Controller层直接包揽所有工作:接收参数→校验业务权限→硬编码Prompt→调用GPT接口→解析返回结果→保存数据库→返回前端。

致命问题

  1. 所有逻辑堆在一个方法里,几百行代码堆砌,可读性极差

  2. Prompt、模型参数、业务规则全部硬编码,修改成本极高

  3. 换模型需要重写整个调用逻辑,业务代码同步改动

  4. 排查问题无法分层,不知道是权限问题、参数问题还是模型问题

  5. 无法复用AI改写能力,新增场景必须重复写代码

正面案例:规范解耦架构(标准落地版)

1.接入层(Controller):接收参数、校验权限、转发请求、封装响应

2.业务层(Service):校验用户改写次数、判断会员权限、组装业务上下文、记录业务日志、准备标准化入参、调用AI调度接口、落地改写结果

3.AI调度层:根据「文案改写」场景编码,匹配对应的Prompt模板、选择指定大模型、下发推理任务

4.AI能力层:读取模板、渲染用户输入内容、组装模型请求、调用模型接口、捕获异常、重试兜底、解析结构化结果、返回标准化数据

5.基础层:提供日志、缓存、数据库、配置支撑

核心优势

  • 优化Prompt:只改Prompt配置,不动任何代码

  • 更换模型:只在AI能力层新增适配实现,业务代码零改动

  • 新增业务场景:复用整套AI能力,只扩展业务规则

  • 问题排查:分层定位,快速区分业务问题、AI问题、配置问题


六、中小团队专属避坑指南

结合我多年踩坑经验,整理几个中小型AI工具开发中最高频、最致命的边界坑,帮大家直接避雷。

坑1:为了省事,把AI异常兜底写在业务层

错误做法:业务代码里写大量try-catch,处理模型超时、返回空、格式错误等AI异常。

正确边界:所有AI相关异常、重试、降级、兜底,全部收拢在AI能力层/调度层。业务层只接收最终结果,成功则落地,失败则接收统一异常信息,无需关心AI失败原因。

坑2:业务字段和AI入参出参混用不隔离

很多人图省事,直接把数据库实体、业务DTO传给AI调用方法,导致AI入参绑定业务结构。后续业务字段变更,AI推理链路直接报错。

解决方案:严格分层DTO,业务DTO、AI请求DTO、AI返回DTO完全独立,中间通过转换方法适配,双向隔离,互不影响。

坑3:无调度层,业务直接依赖具体AI实现

业务代码直接new具体模型调用类、直接调用具体AI方法,属于强依赖。底层改动,上层必崩。

解决方案:基于抽象接口编程,AI调度层统一对外暴露能力,业务层只依赖接口,不依赖具体实现类。

坑4:Prompt和业务逻辑耦合绑定

根据业务状态动态拼接Prompt字符串,代码又臭又长,极难维护。

解决方案:所有Prompt模板配置化,动态参数通过占位符注入,业务只负责传参,不参与模板拼接。

坑5:过度设计,照搬企业级微服务架构

中小项目最忌讳过度架构,本来就几个人开发,硬拆十几个微服务、搞复杂网关、注册中心,开发效率直接减半,完全得不偿失。

正确姿势:中小AI工具优先模块化单体架构,内部边界清晰、模块解耦,外部无需分布式拆分,兼顾开发效率和架构扩展性。后续体量变大,可直接按模块拆分为微服务,无缝扩容。


七、落地收益:解耦架构到底能帮我们省多少事?

很多小伙伴会问:我项目小、迭代快,花时间梳理边界、拆分模块,值得吗?

我用真实落地数据告诉大家:极其值得,长期收益远超前期投入

1.迭代效率大幅提升

业务迭代不用碰AI代码,AI优化不用改业务代码,团队可以并行开发,前端、后端、AI开发各司其职,互不干扰。据实测,解耦架构下的AI项目迭代效率能提升40%以上。

2.模型迁移成本趋近于零

从开源模型到商用模型、从本地部署到云端调用,底层切换完全不影响上层业务,无需大规模改代码,几分钟即可完成适配。

3.问题排查效率翻倍

分层边界清晰,问题精准定位:接入层报错=请求/权限问题,业务层报错=业务规则问题,AI层报错=模型/推理问题,彻底告别盲目排查。

4.能力可复用、可沉淀

AI通用能力、Prompt管理能力、数据处理能力,全部沉淀为通用组件,后续开发新AI工具,直接复用,不用重复造轮子,大幅缩短新项目开发周期。

5.项目可维护性拉满

新人接手项目,通过模块边界即可快速看懂整体架构,不用通读全部代码,降低团队交接成本和维护成本。


八、总结:中小AI项目的架构生存法则

最后给大家总结几句掏心窝的干货,作为全文核心总结:

中小型AI工具开发,不需要花里胡哨的架构,只需要清晰干净的边界。不用追求企业级的复杂设计,不用堆砌新技术、新框架,只要做好业务与AI彻底解耦、分层职责清晰、模块边界明确、交互规则统一,就是最适合中小团队的最优架构。

记住核心公式:清晰边界 = 低耦合 = 易迭代 = 少bug = 低成本长期维护

很多项目不是需求做不完,不是技术不够强,而是前期架构偷懒、边界不分,导致后期迭代处处受限,最后越做越累、越改越崩。

希望看完这篇文章的小伙伴,下次再开发AI工具,不要再写耦合混乱的烂代码,用这套轻量解耦架构,轻松搞定迭代、从容应对需求变更,告别重构内卷!


原创不易,干货满满!如果对你有帮助,欢迎点赞、收藏、关注,后续持续更新AI架构落地实战、解耦技巧、避坑指南,帮大家轻松搞定AI项目开发!

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-06-21 05:59:20 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/776085.html
  2. 运行时间 : 0.139493s [ 吞吐率:7.17req/s ] 内存消耗:4,850.59kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=7badceb8a848b29a81ae734f8725eed1
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000906s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000799s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000321s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000292s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000465s ]
  6. SELECT * FROM `set` [ RunTime:0.000204s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000548s ]
  8. SELECT * FROM `article` WHERE `id` = 776085 LIMIT 1 [ RunTime:0.000441s ]
  9. UPDATE `article` SET `lasttime` = 1781992760 WHERE `id` = 776085 [ RunTime:0.000922s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000270s ]
  11. SELECT * FROM `article` WHERE `id` < 776085 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000555s ]
  12. SELECT * FROM `article` WHERE `id` > 776085 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000453s ]
  13. SELECT * FROM `article` WHERE `id` < 776085 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000820s ]
  14. SELECT * FROM `article` WHERE `id` < 776085 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000787s ]
  15. SELECT * FROM `article` WHERE `id` < 776085 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.008352s ]
0.141326s