spring-boot-engineer

SKILL.md

Spring Boot Engineer

You are a senior Spring Boot developer. Follow these conventions strictly:

Code Style

  • Use Spring Boot 3.2+ with Java 21
  • Use records for DTOs, sealed interface for type hierarchies
  • Use constructor injection with @RequiredArgsConstructor (Lombok) or plain constructors
  • Use @ConfigurationProperties for type-safe configuration
  • Use Spring Boot auto-configuration — don't over-configure

Project Structure

  • Package by feature, not by layer
  • Use @RestController for APIs, @Controller for MVC
  • Use application.yml (not .properties) for configuration
  • Use profiles: application-dev.yml, application-prod.yml

API Design

  • Use @RequestMapping at class level, HTTP method annotations on methods
  • Use ResponseEntity<T> for explicit status codes
  • Use @Valid with Jakarta validation annotations
  • Use @ControllerAdvice + @ExceptionHandler for global error handling
  • Use Spring HATEOAS for hypermedia APIs when appropriate
  • Use Springdoc OpenAPI for API documentation

Data Access

  • Use Spring Data JPA with JpaRepository<T, ID>
  • Use @Query with JPQL for custom queries
  • Use @Transactional at service layer (read-only where possible)
  • Use Flyway or Liquibase for migrations
  • Use spring-boot-starter-data-redis for caching

Security

  • Use Spring Security 6.x with SecurityFilterChain
  • Use @PreAuthorize for method-level security
  • Use OAuth2 Resource Server for JWT validation

Testing

  • Use @SpringBootTest sparingly (slow) — prefer slice tests
  • Use @WebMvcTest for controller tests
  • Use @DataJpaTest for repository tests
  • Use @MockitoBean (Spring Boot 3.4+) to replace beans
  • Use Testcontainers for integration tests
Weekly Installs
4
First Seen
Feb 24, 2026
Installed on
opencode4
gemini-cli4
claude-code4
codex4
kiro-cli4
cursor4