Learn-skills.dev spring-boot-engineer
Expert in Spring Boot 3+, Microservices, and Cloud-Native Java. Specializes in Virtual Threads, Spring Cloud, and Reactive Stack.
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/404kidwiz/claude-supercode-skills/spring-boot-engineer" ~/.claude/skills/neversight-learn-skills-dev-spring-boot-engineer && rm -rf "$T"
manifest:
data/skills-md/404kidwiz/claude-supercode-skills/spring-boot-engineer/SKILL.mdsource content
Spring Boot Engineer
Purpose
Provides expertise in building production-grade Java applications with Spring Boot 3+. Specializes in microservices architecture, cloud-native patterns, reactive programming, and leveraging modern Java features including virtual threads.
When to Use
- Building Spring Boot applications and microservices
- Implementing REST APIs with Spring Web or WebFlux
- Configuring Spring Security for authentication/authorization
- Setting up Spring Data JPA, MongoDB, or R2DBC
- Implementing Spring Cloud patterns (Config, Gateway, Circuit Breaker)
- Using virtual threads with Spring Boot 3.2+
- Building reactive applications with Project Reactor
- Integrating messaging with Spring Kafka or RabbitMQ
Quick Start
Invoke this skill when:
- Building Spring Boot applications and microservices
- Implementing REST APIs with Spring Web or WebFlux
- Configuring Spring Security for authentication/authorization
- Setting up Spring Data repositories
- Implementing Spring Cloud patterns
Do NOT invoke when:
- General Java questions without Spring → use java-architect
- Kubernetes deployment → use kubernetes-specialist
- Database design → use database-administrator
- Frontend development → use appropriate frontend skill
Decision Framework
Spring Boot Task? ├── API Development → Spring Web (blocking) vs WebFlux (reactive) ├── Data Access → JPA (relational) vs MongoDB (document) vs R2DBC (reactive) ├── Security → OAuth2/OIDC vs JWT vs Basic Auth ├── Messaging → Kafka (high throughput) vs RabbitMQ (routing) ├── Service Communication → REST vs gRPC vs messaging └── Configuration → Spring Cloud Config vs Kubernetes ConfigMaps
Core Workflows
1. Microservice Development
- Initialize project with Spring Initializr and required starters
- Define domain model and DTOs
- Implement repository layer with Spring Data
- Create service layer with business logic
- Build REST controllers with proper error handling
- Add validation, security, and observability
- Write tests at unit, integration, and contract levels
- Configure for cloud deployment (health, metrics, config)
2. Spring Security Configuration
- Add spring-boot-starter-security dependency
- Define security filter chain configuration
- Configure authentication provider (JWT, OAuth2, LDAP)
- Set up authorization rules for endpoints
- Implement custom UserDetailsService if needed
- Add CORS and CSRF configuration
- Test security configuration thoroughly
3. Reactive Application Development
- Use WebFlux instead of Spring Web
- Configure R2DBC for reactive database access
- Return Mono/Flux from controllers and services
- Use WebClient for non-blocking HTTP calls
- Implement backpressure handling
- Test with StepVerifier
- Monitor with reactive-aware observability
Best Practices
- Use constructor injection over field injection
- Externalize configuration with profiles and ConfigMaps
- Implement proper exception handling with @ControllerAdvice
- Enable Actuator endpoints for health and metrics
- Use Testcontainers for integration tests
- Leverage virtual threads for I/O-bound workloads (Spring Boot 3.2+)
Anti-Patterns
- Field injection → Use constructor injection for testability
- Blocking in reactive chains → Keep reactive pipeline non-blocking
- Catching generic exceptions → Handle specific exceptions appropriately
- Hardcoded configuration → Externalize with environment variables
- Missing health checks → Always expose Actuator health endpoint