当前位置: 首页 > article >正文

博客标题:智契通项目开发周记(第一周):架构设计与基础环境搭建

一、 本周工作概述本周是项目实训的第一周核心目标并非实现具体的业务功能而是进行顶层设计与地基建设。基于《智契通》项目需求我们确立了“Spring Boot 3 Vue 3 AI”的技术路线。主要工作分为两个维度架构设计完成了从需求分析到系统分层、技术选型的总体设计明确了微服务演进方向。环境搭建完成了前后端工程的初始化重点实现了后端通用异常处理体系、响应封装及前端请求拦截器为后续AI能力接入打下基础。二、 项目总体架构设计在编码开始前我们首先制定了详细的《智契通项目总体架构设计》。一个清晰的架构是应对复杂业务如合同生成、风险审查的前提。1. 技术选型策略我们采用前后端分离架构兼顾开发效率与系统扩展性后端Java Spring Boot 3.x利用其强大的生态和稳定性集成Spring Security进行权限控制使用Redis做缓存MySQL存储核心数据。前端Vue 3 TypeScript采用Vite构建工具Pinia状态管理Element Plus组件库确保现代化的交互体验。AI能力层预留OpenAI、通义千问等大模型接口通过适配器模式支持多模型切换。2. 系统分层设计为了保证代码的可维护性我们严格遵循分层架构表现层Vue前端负责合同展示、编辑与可视化对比。接入层统一API网关初期由Spring Boot统一处理负责JWT鉴权与限流。业务层核心业务逻辑包括合同模板、生成、审查、摘要、对比等模块。AI服务层独立的模型调用与Prompt编排服务隔离大模型的不稳定性。数据层MySQL Redis 对象存储MinIO支持海量合同存储。3. 模块化规划考虑到项目初期采用单体架构我们预先规划了模块目录以便未来拆分为微服务contract-user(用户权限)contract-core(合同核心数据)contract-ai(AI模型调用)contract-risk(风险识别)三、 后端基础环境搭建与核心配置环境搭建不仅仅是引入依赖更重要的是建立一套规范的代码契约。本周后端工作重点在于“通用能力”的封装。1. 项目结构规范基于Maven构建我们规范了标准的包结构确保团队成员代码风格统一src/ ├── main/ │ ├── java/ │ │ └── com.zhiqitong/ │ │ ├── config/ # 配置类 (如WebConfig, RedisConfig) │ │ ├── controller/ # 接口层 │ │ ├── exception/ # 异常处理体系 │ │ ├── service/ # 业务逻辑层 │ │ ├── util/ # 通用工具类 (Hutool扩展) │ │ └── Application.java │ └── resources/ └── test/2. 核心依赖整合Hutool工具库引入Hutool以简化Java开发。例如使用IdUtil.getSnowflake()生成分布式唯一ID避免数据库主键冲突这在处理大量合同文档时至关重要。Knife4j接口文档集成Swagger增强版实现无注解零配置的接口文档生成极大方便了前后端联调。3. 通用异常与响应封装核心亮点为了提升系统的健壮性和前端交互的友好度我设计了一套完善的异常处理机制。自定义错误码枚举我们定义了标准的错误码体系与HTTP状态码语义保持一致便于前端统一处理。Getter public enum ErrorCode { SUCCESS(0, 成功), PARAMS_ERROR(40000, 请求参数错误), NOT_LOGIN_ERROR(40100, 未登录), NO_AUTH_ERROR(40101, 无权限), SYSTEM_ERROR(50000, 系统内部异常); private final int code; private final String message; // 构造方法... }全局异常处理器 (GlobalExceptionHandler)利用RestControllerAdvice捕获所有未处理的异常。无论是业务逻辑抛出的BusinessException还是系统底层的RuntimeException都会被统一拦截记录日志并返回标准格式避免系统崩溃。RestControllerAdvice Slf4j public class GlobalExceptionHandler { ExceptionHandler(BusinessException.class) public BaseResponse? handleBusinessException(BusinessException e) { log.error(BusinessException: , e); return ResultUtils.error(e.getCode(), e.getMessage()); } ExceptionHandler(Exception.class) public BaseResponse? handleException(Exception e) { log.error(System Error: , e); return ResultUtils.error(ErrorCode.SYSTEM_ERROR); } }统一响应包装类 (BaseResponse)规范所有接口的返回结构code, data, message前端只需一套逻辑即可解析所有接口数据。四、 前端工程化配置与全局设计前端的任务是打通与后端的通信桥梁并提供一致的用户体验。1. Vue 3 工程化架构采用Vite作为构建工具TypeScript作为开发语言Pinia替代 Vuex 进行状态管理。目录结构清晰分离了views页面、components组件、api接口请求和router路由。2. 全局通用布局 (Layout)参考Ant Design Pro的设计理念我们设计了BasicLayout。页面采用经典的“上-中-下”结构Header包含Logo、导航菜单及用户头像下拉菜单集成登录状态检测。Content通过router-view动态加载子路由适配不同屏幕尺寸。Footer固定底部的版权信息。3. 请求层封装与拦截器为了应对复杂的API调用特别是后续调用AI接口时的鉴权我们封装了 Axios 实例请求拦截器统一注入 TokenJWT处理 Loading 状态。响应拦截器核心在于错误统一处理。在拦截器中直接判断后端返回的code若为40100未登录则自动跳转至登录页无需每个页面单独判断。若为业务错误如参数错误则通过Message组件统一弹出提示极大减少了业务代码中的冗余判断逻辑。五、 遇到的问题与解决方案Spring Boot 3 的 Jakarta 包冲突问题Spring Boot 3 默认使用jakarta.servlet而部分旧版依赖如Swagger早期版本使用javax.servlet导致启动报错。解决升级Swagger为Knife4j的Spring Boot 3适配版本并检查依赖树排除冲突的旧包。跨域 (CORS) 与 Credentials 配置问题前端开发服务器localhost:5173访问后端localhost:8080时Cookie无法携带导致登录态丢失。解决在后端配置CrossOrigin或自定义CorsConfiguration并设置allowCredentials为true同时前端 Axios 配置withCredentials: true。

相关文章:

博客标题:智契通项目开发周记(第一周):架构设计与基础环境搭建

一、 本周工作概述 本周是项目实训的第一周,核心目标并非实现具体的业务功能,而是进行顶层设计与地基建设。基于《智契通》项目需求,我们确立了“Spring Boot 3 Vue 3 AI”的技术路线。 主要工作分为两个维度: 架构设计&#…...

002、Python开发环境搭建:从官网下载到安装完成

002、Python开发环境搭建:从官网下载到安装完成 昨天帮实习生调试一个简单的脚本,他信誓旦旦说环境肯定没问题,结果一跑就报“python不是内部或外部命令”。我让他打开命令行输入where python,果然空空如也——环境变量都没配。这…...

Fan Control风扇控制软件:从噪音难题到散热优化的全方位解决方案

Fan Control风扇控制软件:从噪音难题到散热优化的全方位解决方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_T…...

Axure RP中文语言包:3分钟实现专业原型设计工具完全汉化

Axure RP中文语言包:3分钟实现专业原型设计工具完全汉化 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 你是否正在使…...

RAGAS 了解吗?它的评估指标有哪些?评估流程是怎样的?评估数据如何获取和构造?

1. 题目分析做过 RAG 项目的人大概都有过这种体验:系统搭完了,效果怎么样?说好也行,说不好也行,全凭主观感觉。你觉得检索结果挺相关的,老板觉得回答不够精准;你觉得答案已经很准了,…...

【限时技术内参】EF Core团队内部测试报告流出:向量搜索启用后DbContext并发吞吐量下降41%的根因与热修复补丁

第一章:Entity Framework Core 10 向量搜索扩展 避坑指南Entity Framework Core 10 原生未提供向量搜索能力,需依赖第三方扩展(如 EFCore.Vector 或数据库原生支持)实现相似性检索。开发者常因忽略底层向量存储格式、索引策略或查…...

3D打印螺纹设计革命:Fusion 360专用优化配置文件深度解析

3D打印螺纹设计革命:Fusion 360专用优化配置文件深度解析 【免费下载链接】CustomThreads Fusion 360 Thread Profiles for 3D-Printed Threads 项目地址: https://gitcode.com/gh_mirrors/cu/CustomThreads 在FDM 3D打印领域,螺纹配合精度一直是…...

还在手写网页?CMS才是高效建站的正确打开方式

在网站开发的早期阶段,手写网页是主流方式。开发者需手动编写HTML、CSS、JavaScript等代码,从页面结构搭建到内容填充,每个环节都需要逐行编码。这种方式在技术层面具有极高的自主性,适合小型静态页面或对代码细节有极致要求的场景…...

突破限制:直链解析技术如何让网盘下载加速5倍的实战指南

突破限制:直链解析技术如何让网盘下载加速5倍的实战指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...

高性能客服系统技术内幕:通过 SpinWait 自旋等待结构体提升高频消息分发性能勘

1. 智能软件工程的范式转移:从库集成到原生框架演进 在生成式人工智能(Generative AI)从单纯的文本生成向具备自主规划与执行能力的“代理化(Agentic)”系统跨越的过程中,.NET 生态系统正在经历一场自该平台…...

5个实战技巧让EVE舰船配置效率提升300%

5个实战技巧让EVE舰船配置效率提升300% 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa 在EVE Online这个复杂多变的宇宙中,每一次错误的装备选择都可能意味…...

3个关键技巧:如何用Source Code Pro可变字体提升你的编程效率

3个关键技巧:如何用Source Code Pro可变字体提升你的编程效率 【免费下载链接】source-code-pro Monospaced font family for user interface and coding environments 项目地址: https://gitcode.com/gh_mirrors/so/source-code-pro 你是否曾因代码阅读疲劳…...

下沉市场蓝海!广东墙体广告成品牌增长“第二曲线”

当城市市场竞争进入白热化,越来越多品牌将目光投向广阔的下沉市场,而广东墙体广告凭借独特的地域优势和灵活的投放策略,成为品牌抢占下沉市场、实现增长突围的“第二曲线”,持续占据行业热搜榜单。作为经济大省,广东不…...

10.Agent 进阶实践:基于 Planner-Executor-Responder 的多步决策系统实现

目 录 从单步执行到多步决策与状态流转最小循环Agent代码实现工具选择planner执行工具executor执行输出responder 从单步执行到多步决策与状态流转 最近不知道大家有没有关注一些招聘平台的招聘信息,其实看这些平台我相信最多的关键词就Cot、ReAct等,今…...

雅虎日本母公司将164个OpenStack集群整合为一个

LY Corporation是一家日本互联网巨头,旗下业务涵盖即时通讯、电子商务和支付等领域,在亚洲多个国家占据重要地位。该公司近日披露,正计划将高度定制化的OpenStack云平台替换为更标准化的开源云架构,并在此过程中推进大规模的资源整…...

高效3D医学图像分割实战:MedSAM从入门到精通

高效3D医学图像分割实战:MedSAM从入门到精通 【免费下载链接】MedSAM Segment Anything in Medical Images 项目地址: https://gitcode.com/gh_mirrors/me/MedSAM MedSAM(Segment Anything in Medical Images)是一款专为医学影像设计的…...

2026知识付费SaaS深度测评:帮20家机构选型后,我为什么最终推荐创客匠人?

开篇:一个选型顾问的真实困惑过去一年,我以独立第三方身份,先后为20家知识付费机构提供SaaS选型咨询。这些客户里有刚起步的职场IP、有年营收千万的教培机构、也有从公域转型私域的电商团队。他们的共同困惑惊人一致:“功能看着都…...

再次革新 .NET 的构建和发布方式(一)任

本文能帮你解决什么? 1. 搞懂FastAPI异步(async/await)到底在什么场景下能真正提升性能。 2. 掌握在FastAPI中正确使用多线程处理CPU密集型任务的方法。 3. 避开常见的坑(比如阻塞操作、数据库连接池耗尽、GIL限制)。 …...

LabVIEW Excel工具包:高效读写EXCEL模板,快速生成测试报告制作利器

LabVIEW Excel工具包快速读写EXCEL样式模板生成测试报告制作LabVIEW工程师最头疼的Excel报告生成终于有解了!最近项目里被要求每天生成格式统一的测试报告,手动操作Excel差点把我逼疯。直到发现LabVIEW自带的Excel工具包,真香警告来了——原来…...

自动化测试新思路:OpenClaw+Qwen3-4B生成与执行单元测试用例

自动化测试新思路:OpenClawQwen3-4B生成与执行单元测试用例 1. 为什么需要AI辅助测试开发 作为一名长期奋战在一线的开发者,我深知单元测试的重要性,但编写测试用例的过程往往枯燥且耗时。特别是在面对复杂业务逻辑时,手动编写测…...

3大核心优势+零门槛配置:Perseus开源工具助你畅享完整游戏体验

3大核心优势零门槛配置:Perseus开源工具助你畅享完整游戏体验 【免费下载链接】Perseus Azur Lane scripts patcher. 项目地址: https://gitcode.com/gh_mirrors/pers/Perseus 作为一款针对游戏体验优化的开源工具,Perseus凭借其独特的无偏移地址…...

三菱Fx3U三轴定位控制程序,完美结合梯形图与St语言,动态码加密保护方案

三菱Fx3U三轴定位控制程序,其中两轴为脉冲输出同步运行360度转盘,3轴为工作台丝杆。 1.本程序结构清晰,有公共程序,原点回归,手动点动运行,手动微动运行。 报警程序,参数初始化程序等。 2.自动程…...

日志系统建设:从“查问题”到“预测问题”

日志系统在软件测试中的核心地位 日志系统是软件测试从业者的“眼睛”,它记录了应用程序运行时的每一个关键事件,从用户操作到系统异常。传统上,日志主要用于事后故障排查(reactive approach),帮助测试人员…...

长治厨卫改造哪个公司有经验

如果你家住长治,房子房龄超过10年,大概率已经被厨卫问题磨得头疼:瓷砖起翘脱落、下水反味臭整屋、防水漏到楼下赔罚款、插座不够用插线板绕得到处都是……根据国内家装行业2024年存量房改造调研数据,63%的老房业主首次改造优先选厨…...

多模态AI实战:让机器同时看懂、听懂和思考——软件测试者的技术革新指南

当测试遇上多模态革命在软件测试领域,单一维度的验证已难以应对智能化系统的复杂性。多模态AI通过融合视觉、语音、文本等多源信息,构建起接近人类认知的感知能力,这不仅是技术演进的方向,更是测试工程师必须掌握的新质生产力工具…...

如何快速掌握DeepXDE:物理信息神经网络的完整指南

如何快速掌握DeepXDE:物理信息神经网络的完整指南 【免费下载链接】deepxde A library for scientific machine learning and physics-informed learning 项目地址: https://gitcode.com/gh_mirrors/de/deepxde 如果你正在寻找一种革命性的方法来求解微分方程…...

高阶 HDI 同行参考:40 层>5 阶 HDI 技术难点

【实战复盘】19 天拿下 40 层>5 阶板的工艺 项目管理方案 标签:高阶HDI、激光钻孔、电镀均匀性、多次压合最近刚完成一款40层且大于5阶的高阶HDI项目。坦白说,这板子难度不小:多次压合对位、激光钻孔一致性、电镀填孔均匀性&…...

C++的std--function与lambda表达式:可调用对象包装器

C的std::function与lambda表达式:可调用对象包装器 在现代C编程中,可调用对象的灵活处理是提升代码复用性和可读性的关键。std::function与lambda表达式的结合,为开发者提供了一种强大的工具,能够统一管理函数指针、成员函数、仿…...

大模型智能体 (agent)简易流程介绍谖

引言 在现代软件开发中,性能始终是衡量应用质量的重要指标之一。无论是企业级应用、云服务还是桌面程序,性能优化都能显著提升用户体验、降低基础设施成本并增强系统的可扩展性。对于使用 C# 开发的应用程序而言,性能优化涉及多个层面&#x…...

webflux接收application/x-www-form-urlencoded参数

记录开发中遇到的问题 请求方式:需要用如下方式接收: 方式1PostMapping(value "/user/logout", consumes "application/x-www-form-urlencoded")public ResponseResult logoutForAuthSystem(ServerWebExchange exchange) {exchang…...