用途:该技能为服务层代码定义统一的结构与实现约定,用于约束服务类如何组织接口、实现类、数据传输对象与事务,适合采用 Spring 风格分层架构的项目在编写或审查服务层代码时参考。
主要能力与约定:服务类必须是接口类型;所有服务方法的实现必须放在实现该接口的 ServiceImpl 类中;所有 ServiceImpl 类必须标注 @Service;ServiceImpl 中的依赖必须使用 @Autowired 注入且不使用构造器,除非另有说明;ServiceImpl 方法的返回对象应为 DTO 而非实体类,除非绝对必要;需要检查记录是否存在的逻辑,应使用对应 repository 方法配合合适的 .orElseThrow lambda;涉及多次顺序数据库执行时,必须使用 @Transactional 或 transactionTemplate,视情况选择合适者。
使用方式:作为编码规范在开发与评审中执行。技能还包含强制记忆协议:开始前执行 cat .claude/context/memory/learnings.md,完成后记录新发现的模式或例外;并提示上下文可能重置,未写入记忆即视为未发生。
适用场景:Spring 风格分层后端项目中服务层的编写、重构与代码审查。
限制:资料未提供具体语言版本、框架版本、示例代码、安装命令或配置细节;约定中的例外情形(如“除非另有说明”“除非绝对必要”)未给出判定标准,需由项目自行明确。