SuperAPI AI 工具集

java-springboot

编程与开发

查看项目

更新于 10-16 06:48

技能介绍

用途:该技能用于在开发 Spring Boot 应用时提供一套既定最佳实践,帮助产出高质量代码。

主要能力与约定: 项目结构与构建:使用 Maven(pom.xml)或 Gradle(build.gradle)管理依赖;使用 Spring Boot starters(如 spring-boot-starter-web、spring-boot-starter-data-jpa)简化依赖;按功能/领域组织包结构(如 com.example.app.order、com.example.app.user),而非按层划分。 依赖注入与组件:必需依赖一律使用构造器注入,依赖字段声明为 private final;按语义使用 @Component、@Service、@Repository、@Controller/@RestController。 配置:使用 application.yml(或 application.properties)外部化配置;用 @ConfigurationProperties 绑定强类型对象;用 Spring Profiles(application-dev.yml、application-prod.yml)管理环境差异;禁止硬编码密钥,改用环境变量或 HashiCorp Vault、AWS Secrets Manager 等密钥管理工具。 Web 层:设计清晰一致的 RESTful 端点;使用 DTO 暴露和接收数据,不直接暴露 JPA 实体;用 Java Bean Validation(JSR 380)注解(@Valid、@NotNull、@Size)校验请求;用 @ControllerAdvice 与 @ExceptionHandler 实现全局异常处理,返回一致错误响应。 服务层:业务逻辑封装在 @Service 类中;服务保持无状态;用 @Transactional 声明式管理事务,并施加在必要的最细粒度上。 数据层:通过继承 JpaRepository 或 CrudRepository 使用 Spring Data JPA;复杂查询用 @Query 或 JPA Criteria API;用 DTO 投影只取所需数据。 日志:使用 SLF4J API;声明 private static final Logger logger = LoggerFactory.getLogger(MyClass.class);;使用参数化日志(logger.info("Processing user {}...", userId);)而非字符串拼接。 测试:用 JUnit 5 与 Mockito 编写单元测试;用 @SpringBootTest 做集成测试;用 @WebMvcTest、@DataJpaTest 等测试切片隔离测试;可考虑 Testcontainers 进行真实数据库、消息中间件等的可靠集成测试。 安全:使用 Spring Security 做认证与授权;密码始终用 BCrypt 等强哈希算法编码;通过 Spring Data JPA 或参数化查询防 SQL 注入,通过正确编码输出防 XSS。

使用方式与限制:资料未提供具体安装命令、调用方式或平台信息,暂未提供。该技能为开发规范指导,不包含可直接运行的代码示例或工具集成说明。