其他
开发或维护 Java Spring Boot…
适用于使用 Java 17+ 和 Spring Boot 3.x 构建企业级 REST/微服务应用时,系统化落地架构、依赖注入、数据访问、安全、测试、性能与可观测性最佳实践。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 40/100 ×0.15
适用场景
开发或维护 Java Spring Bo特定
解决思路
- 编写干净、高效且文档完善的 Java 代码,并提供准确的 Spring Boot 示例。
- 使用 Spring Boot 3.x 与 Java 17+ 特性(records、sealed classes、pattern matching)。
- 优先使用构造器注入而非字段注入,以提高可测试性。
- 遵循 SOLID 原则和 RESTful API 设计模式。
- 按微服务架构适用性进行设计。
- 按标准分层模式组织代码:controllers/ 放 REST controllers,services/ 放业务逻辑,repositories/ 放数据访问层,models/ 放领域实体和 DTOs,configurations/ 放 Spring 配置。
- 对必需依赖使用构造器注入。
- 使用 Lombok 的 @RequiredArgsConstructor 简化代码。
- 保持构造器简单,避免在构造器中写逻辑。
- 存在多个实现时使用 @Qualifier。
- 使用合适的 HTTP 方法(GET、POST、PUT、DELETE、PATCH)。
- 返回正确的 HTTP 状态码。
- 实现一致的错误响应格式。
- 使用 DTOs 控制 API 契约。
- 需要时为 API 添加版本。
- 定义正确的实体关系(@OneToMany、@ManyToOne 等)。
- 适当使用懒加载以避免 N+1 查询。
- 为大型结果集实现分页。
- 使用查询方法和 @Query 进行自定义查询。
- 使用 Flyway 或 Liquibase 进行 schema migrations。
- 正确对迁移脚本进行版本管理。
- 永远不要修改已有迁移。
- 在生产前于开发环境测试迁移。
- 正确实现身份认证和授权。
- 使用 BCrypt 进行密码编码。
- 适当配置 CORS。
- 基于角色/权限保护端点。
- 在生产环境使用 HTTPS。
- 验证所有用户输入。
- 清理数据以防止注入攻击。
- 避免在响应中暴露敏感信息。
- 使用参数化查询。
- 使用 JUnit 5 编写单元测试。
- 使用 Mockito mock 依赖。
- 彻底测试业务逻辑。
- 遵循 Given-When-Then 模式。
- 使用 @SpringBootTest 进行集成测试。
- 使用 MockMvc 测试 Web 层。
- 使用 test containers 测试数据库操作。
- 测试安全配置。
- 使用 Spring Cache 抽象。
- 配置合适的缓存提供者(Redis、Caffeine)。
- 为缓存数据设置合适的 TTL。
- 实现缓存淘汰策略。
- 使用 @Async 进行非阻塞操作。
- 适当配置线程池。
- 处理异步方法中的异常。
- 考虑对高并发使用响应式模式。
- 使用 SLF4J 配合 Logback。
- 在适当的级别记录日志。
- 包含 correlation IDs 以便追踪。
- 避免记录敏感数据。
- 使用 Spring Boot Actuator 获取健康和指标。
- 将指标导出到监控系统。
- 设置适当的健康检查。
- 监控应用性能。
- 使用 Springdoc OpenAPI 生成 API 文档。
- 用描述记录所有端点。
- 包含请求/响应示例。
- 保持文档与代码同步更新。
适用边界 · 注意事项
- 不适用于非 Java/Spring Boot 技术栈,或不需要企业级 Spring 应用治理的项目。
- 不适用于无法使用 Java 17+ 与 Spring Boot 3.x 的旧系统;需按兼容版本调整。
- 若项目明确禁止 Lombok、Flyway/Liquibase、Redis/Caffeine 等依赖,或简单原型不需要完整分层、安全与监控体系,不宜直接套用。