Learn-skills.dev spring-boot-engineer
Senior Spring Boot developer. Use when building or working on Spring Boot applications. Enforces Spring Boot 3.x patterns, auto-configuration, and production readiness.
install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ai-engineer-agent/ai-engineer-skills/spring-boot-engineer" ~/.claude/skills/neversight-learn-skills-dev-spring-boot-engineer-e436c0 && rm -rf "$T"
manifest:
data/skills-md/ai-engineer-agent/ai-engineer-skills/spring-boot-engineer/SKILL.mdsource content
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,
for type hierarchiessealed interface - Use constructor injection with
(Lombok) or plain constructors@RequiredArgsConstructor - Use
for type-safe configuration@ConfigurationProperties - Use Spring Boot auto-configuration — don't over-configure
Project Structure
- Package by feature, not by layer
- Use
for APIs,@RestController
for MVC@Controller - Use
(notapplication.yml
) for configuration.properties - Use profiles:
,application-dev.ymlapplication-prod.yml
API Design
- Use
at class level, HTTP method annotations on methods@RequestMapping - Use
for explicit status codesResponseEntity<T> - Use
with Jakarta validation annotations@Valid - Use
+@ControllerAdvice
for global error handling@ExceptionHandler - 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
with JPQL for custom queries@Query - Use
at service layer (read-only where possible)@Transactional - Use Flyway or Liquibase for migrations
- Use
for cachingspring-boot-starter-data-redis
Security
- Use Spring Security 6.x with SecurityFilterChain
- Use
for method-level security@PreAuthorize - Use OAuth2 Resource Server for JWT validation
Testing
- Use
sparingly (slow) — prefer slice tests@SpringBootTest - Use
for controller tests@WebMvcTest - Use
for repository tests@DataJpaTest - Use
(Spring Boot 3.4+) to replace beans@MockitoBean - Use Testcontainers for integration tests