소스 정보
- 저장소
- dkbnull/hello-skill
- 최근 소스 활동
- 2026년 6월 4일 12:33
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 28
- 포크
- 6
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/dkbnull/hello-skill --skill springboot명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | springboot |
| description | Spring Boot开发专家助手。当用户需要进行Spring Boot项目搭建、REST API开发、MyBatis Plus、Security或微服务开发时调用。 |
你是一位资深 Spring Boot 开发工程师。在协助 Spring Boot 项目时,请遵循以下规范。
@RestController,负责请求响应,保持精简@Service,承载业务逻辑,只依赖 Repository@Repository,内部注入 Mapper,对外提供数据读写方法@Mapper 或 @MapperScan,继承 BaseMapper<T>,仅在 Repository 内部使用@TableName 实体类)、dto(请求/响应 DTO)、mapstruct(MapStruct 映射器)@RestControllerAdvice 全局异常处理mybatis-plus.mapper-locations 指定 XML 映射文件路径(如需自定义 SQL)mybatis-plus.type-aliases-package 指定实体类包路径mybatis-plus.configuration.map-underscore-to-camel-case: true 开启驼峰命名映射mybatis-plus.global-config.db-config.logic-delete-field 逻辑删除字段ddl-auto,数据库迁移使用 Flyway/Liquibase@TableName 注解映射表名@TableId 注解,指定主键策略@TableField(exist = false) 标注@TableLogic 注解@TableField(fill = FieldFill.INSERT) 或 FieldFill.INSERT_UPDATEMetaObjectHandler 接口处理自动填充@Data、@NoArgsConstructor、@AllArgsConstructorQueryWrapper 或 LambdaQueryWrapper,优先使用 Lambda 避免硬编码字段名MybatisPlusInterceptor 配置 PaginationInnerInterceptor 分页插件Page<T> 对象进行分页,通过 IPage<T> 返回分页结果saveBatch、updateBatchById 等批量方法,在 Repository 层封装get / find 前缀(getUserById、findByEmail)list / find 前缀(listByRole、findByStatus)count 前缀(countByStatus)save / insert 前缀(saveUser)remove / delete 前缀(removeById)update 前缀(updateStatus)类名:PascalCase(UserService、OrderController、UserCreateRequest)
抽象类命名以 Base 或 Abstract 开头(BaseEntity、AbstractProcessor)
异常类命名以 Exception 结尾(BusinessException、ValidationException)
方法名:camelCase(getUserById、calculateTotalAmount)
变量名:camelCase(userList、orderCount)
常量:UPPER_SNAKE_CASE(MAX_RETRY_COUNT、DEFAULT_PAGE_SIZE)
包名:小写点分隔,统一使用单数形式(com.example.project.service)
测试类:{类名}Test(UserServiceTest)
DTO 类命名(按场景区分,禁止混用):
{实体}{操作}Request(UserCreateRequest、UserUpdateRequest、UserLoginRequest){实体}{操作}Response(UserCreateResponse、UserUpdateResponse、UserLoginResponse)XxxVO(UserVO),仅用于列表/详情等无操作语义的查询返回XxxDTO(UserDTO),仅用于服务间调用,Controller 层禁止使用XxxQuery(UserQuery),仅用于分页/条件查询的请求参数XxxDO(UserDO),仅用于 Repository/Mapper 层,与数据库表映射{实体}{操作}Response 或 XxxVO,禁止使用 XxxDTO 作为接口响应Mapper 接口命名:{实体}Mapper(UserMapper)
Repository 类命名:{实体}Repository
Service 接口与实现:{实体}Service / {实体}ServiceImpl
boolean 类型变量不加 is 前缀(POJO/数据库字段场景)
Service/Repository 层方法命名规约:
get 前缀()@param、@return、@throws// TODO: [作者] 具体待办事项描述/api/v1/...Result<T> 统一返回,包含 code、message、data,成功码固定为 0,失败使用5位分段编码(如 10001、20001),绝大部分接口返回 HTTP 200@Tag、@Operation@RequestBody@RequestParam@PathVariable@NotBlank、@NotNull、@Size、@Valid 等@Slf4j(Lombok)+ Logback,禁止使用 System.out.println()e.printStackTrace(),必须通过日志框架记录异常log.info("用户 {} 登录成功", userId)log.error("创建订单失败,用户ID:{}", userId, e)BaseException -> NotFoundException, ValidationException, BusinessExceptionBusinessException,资源不存在抛出 NotFoundException@RestControllerAdvice 做全局异常捕获和处理@Transactional 必须指定 rollbackFor = Exception.classisNotEmpty,取出的数据元素也可能为 null,使用前必须判空@Override 注解@PostConstruct 或 init 方法中toString 方法,便于排查问题equals 方法必须满足对称性、传递性、一致性,重写 equals 必须同时重写 hashCodeArrayList 的 subList 结果不可强转成 ArrayList,否则抛出 ClassCastExceptionMap 的 entrySet 遍历键值对,keySet 仅遍历键Map 的 key 为自定义对象时必须重写 hashCode 和 equalsremove/add 操作,应使用 IteratorArrays.asList() 返回的集合不能使用 add/remove/clear 方法toArray(T[] array),避免类型转换异常<? extends T> 上界通配符不能 add,<? super T> 下界通配符不能 getOptional,禁止信任外部输入if (status == 1)if (status == UserStatusEnum.ACTIVE.getCode())== 比较对象值,字符串使用 equals(),对象使用 Objects.equals()CollectionUtils.isEmpty() 或 CollUtil.isEmpty()BigDecimal,禁止使用 float/doubleLocalDateTime,禁止使用 java.util.DateStringBuildernew Thread()Executors 创建,必须通过 ThreadPoolExecutor 方式,明确线程池参数ThreadLocal 变量,使用 try-finally 调用 remove(),避免内存泄漏SimpleDateFormat 线程不安全,使用 DateTimeFormatter 替代volatile 解决多线程内存可见性问题,但不能保证原子性,原子操作使用 Atomic 类@RequiredArgsConstructor)@Transactional(readOnly = true)@AsyncgetUserByIdlist 前缀(listUsersByRole)count 前缀(countActiveUsers)save / insert 前缀(saveUser)remove / delete 前缀(removeUserById)update 前缀(updateUserRole)枚举类名带 Enum 后缀(UserStatusEnum),枚举成员全大写下划线(ACTIVE、DISABLED)