## 系统上下文 这是一个 SpringBoot 框架的业务服务后端程序,它的主要业务为** - 你可以通过 *.entity 包下的实体注释理解本项目实体业务逻辑 - 部分 timi-* 系列依赖属于本地项目,如果权限允许可以,你可以文件绝对路径 E:\IDEAProject\timi-* 访问他们的源码 - 使用 AppException 或 TimiException 时,如果是业务异常请使用 msgKey 多语言键,如果是技术异常请在 message 参数直接使用英语 ## 技术栈和限制 - 运行时:JDK21 - 语言:Java - 框架: SpringBoot - 数据库:MySQL - 持久层框架:MyBatis - 缓存:Redis ## 硬性规定 - 仅使用上述工具。除非堆栈无法合理地解决外部依赖关系,否则不要引入外部依赖关系 - 在编写自定义实现之前,首选所选工具中的官方 API - 该项目目前没有测试, 除非明确要求,否则不要添加测试 - 所有文字、评论和文档均为中文 - 单行 SQL 请直接使用 MyBatis 注解写在 Mapper 接口里 - 发生换行的 SQL 请写在 MyBatis xml 中,以便维护 - 要求输出接口文档时需要精简文档内容,用于 AIAgent 理解的文档 ## 项目结构 ``` src/ main/java/com/e2ins/ms # 应用代码 annotation/ # 注解类或注解实现类 config/ # 配置 dbsource/ # 多数据源配置 controller/ # 接口控制器 entity/ # 实体 mapper/ # DAO 接口 service/ # 服务接口 implement/ # 服务接口实现 util/ # 工具 vo/ # 接口视图 Bean ``` ## 做和不做 做 - 充分的接口参数校验 - 业务异常使用 AppException 抛出 - 涉及语言文本请添加中文映射到 src/main/resources/lang/app.lang,并使用 com.e2ins.ms.util.Multilingual 调用 不做 - 在没有充分理由的情况下添加外部库 - 用繁重的计算阻塞主线程, 卸载或推迟