fitten code可自动识别高内聚低耦合服务单元并生成可编译拆分方案:先通过架构分析扫描项目得出服务候选组,依内聚度得分(≥62)和依赖热力图筛选;再导出指定模块,自动创建新服务、迁移代码并替换原单体调用;最后适配feign/kafka及验证数据库拆分。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要把一个运行多年的单体 Java Spring Boot 应用拆成多个独立部署的微服务,但手动梳理模块边界、提取服务、处理远程调用和数据一致性风险极高。Fitten Code 能基于代码语义自动识别高内聚低耦合的候选服务单元,生成可直接编译的拆分方案。
识别可拆分的服务边界
打开 Fitten Code 插件 → 点击「架构分析」→ 选择项目根目录 → 等待扫描完成(通常需 40~120 秒,取决于代码量)。
扫描完成后,界面左侧显示「服务候选区」,系统已根据包结构、接口调用频次、数据库表关联度、事务边界自动聚合出 3~7 个服务组。每个组顶部标注「内聚度得分」,【得分低于 62 的组不建议单独拆出,强行拆分会引入大量跨服务事务补偿逻辑】。
鼠标悬停任一候选服务组,右侧弹出依赖热力图——红色箭头表示强同步调用,虚线灰箭头表示异步消息或弱依赖。重点观察那些只被本组内类调用、且不持有全局事务注解(@Transactional)的 Controller 和 Service 类。
生成首个微服务模块代码
在「服务候选区」勾选你决定优先拆出的服务(例如:order-service),点击「导出为新模块」。
弹窗中填写:模块名(小写字母+短横线)、端口(如 8082)、所属 Maven Group ID(必须与原项目一致,否则后续依赖解析失败)。
Fitten Code 自动执行三件事:① 创建独立 module 目录并初始化 Spring Boot 基础结构;② 将识别出的类、Mapper、DTO、配置文件完整迁移;③ 在原单体项目中删除对应代码,并注入 FeignClient stub 或 Kafka Producer 占位符。
这一步不可逆——原单体工程里被选中的类将被物理删除,【操作前务必提交 Git 快照,否则无法回退】。
修复跨服务调用链路
方法一:Feign 同步调用适配
打开新生成的 order-service 模块 → 找到 Fitten Code 自动生成的 OrderClient.java 接口 → 检查 @FeignClient(name = "user-service") 中 name 值是否与目标服务实际注册名一致(查看其 application.yml 中 spring.application.name)。
方法二:Kafka 异步事件替换
若原单体中存在「创建订单后立即发短信」这类非核心路径逻辑,Fitten Code 默认将其转为 KafkaProducer 发送 OrderCreatedEvent。需手动确认:① order-service 的 pom.xml 已引入 spring-kafka;② application.yml 中 bootstrap-servers 地址正确;③ 目标服务(如 sms-service)已订阅该 topic 并实现对应的 @KafkaListener。
方法三:数据库拆分验证
第一步:在 order-service 的 application.yml 中注释掉原单体共用的 datasource 配置 → 添加独立数据源指向新库(如 spring.datasource.url=jdbc:mysql://localhost:3306/order_db)。
第二步:运行 Fitten Code 内置的「SQL 影子表检测」工具 → 输入原单体使用的主库地址 → 它会扫描所有 @Table 注解,列出哪些表被当前服务独占访问(标记为 ✅)、哪些仍被其他模块 JOIN 查询(标记为 ⚠️)。
第三步:对 ⚠️ 表项,要么在目标服务中提供 REST API 替代 JOIN,要么启动数据库中间件(如 ShardingSphere)做逻辑分片——Fitten Code 不处理此层,仅预警。











