Backend

java-spring-development

mindrally/skills · updated Apr 8, 2026

$npx skills add https://github.com/mindrally/skills --skill java-spring-development
summary

Organize code using the standard layered pattern:

skill.md

Java Spring Development Best Practices

Core Principles

  • Write clean, efficient, and well-documented Java code with accurate Spring Boot examples
  • Use Spring Boot 3.x with Java 17+ features (records, sealed classes, pattern matching)
  • Prefer constructor injection over field injection for better testability
  • Follow SOLID principles and RESTful API design patterns
  • Design for microservices architecture suitability

Project Structure

Organize code using the standard layered pattern:

project/
├── controllers/     # REST controllers
├── services/        # Business logic
├── repositories/    # Data access layer
├── models/          # Domain entities and DTOs
└── configurations/  # Spring configurations

Dependency Injection

  • Use constructor injection for required dependencies
  • Leverage @RequiredArgsConstructor with Lombok for cleaner code
  • Keep constructors simple and avoid logic in them
  • Use @Qualifier when multiple implementations exist

REST API Design

  • Use appropriate HTTP methods (GET, POST, PUT, DELETE, PATCH)
  • Return proper HTTP status codes
  • Implement consistent error response format
  • Use DTOs to control API contract
  • Version APIs when needed

Data Access

Spring Data JPA

  • Define proper entity relationships (@OneToMany, @ManyToOne, etc.)
  • Use lazy loading appropriately to avoid N+1 queries
  • Implement pagination for large result sets
  • Use query methods and @Query for custom queries

Database Migrations

  • Use Flyway or Liquibase for schema migrations
  • Version migration scripts properly
  • Never modify existing migrations
  • Test migrations in development before production

Security

Spring Security

  • Implement authentication and authorization properly
  • Use BCrypt for password encoding
  • Configure CORS appropriately
  • Protect endpoints based on roles/permissions
  • Use HTTPS in production

Secure Coding

  • Validate all user inputs
  • Sanitize data to prevent injection attacks
  • Avoid exposing sensitive information in responses
  • Use parameterized queries

Testing

Unit Testing

  • Use JUnit 5 for unit tests
  • Mock dependencies with Mockito
  • Test business logic thoroughly
  • Follow Given-When-Then pattern

Integration Testing

  • Use @SpringBootTest for integration tests
  • Use MockMvc for web layer testing
  • Test database operations with test containers
  • Test security configurations

Performance

Caching

  • Use Spring Cache abstraction
  • Configure appropriate cache providers (Redis, Caffeine)
  • Set proper TTL for cached data
  • Implement cache eviction strategies

Async Processing

  • Use @Async for non-blocking operations
  • Configure thread pools appropriately
  • Handle exceptions in async methods
  • Consider using reactive patterns for high concurrency

Logging and Monitoring

Logging

  • Use SLF4J with Logback
  • Log at appropriate levels
  • Include correlation IDs for tracing
  • Avoid logging sensitive data

Monitoring

  • Use Spring Boot Actuator for health and metrics
  • Export metrics to monitoring systems
  • Set up proper health checks
  • Monitor application performance

API Documentation

  • Use Springdoc OpenAPI for API documentation
  • Document all endpoints with descriptions
  • Include request/response examples
  • Keep documentation up to date with code
general reviews

Ratings

4.510 reviews
  • Shikha Mishra· Oct 10, 2024

    java-spring-development is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Piyush G· Sep 9, 2024

    Keeps context tight: java-spring-development is the kind of skill you can hand to a new teammate without a long onboarding doc.

  • Chaitanya Patil· Aug 8, 2024

    Registry listing for java-spring-development matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Sakshi Patil· Jul 7, 2024

    java-spring-development reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Ganesh Mohane· Jun 6, 2024

    I recommend java-spring-development for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Oshnikdeep· May 5, 2024

    Useful defaults in java-spring-development — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Dhruvi Jain· Apr 4, 2024

    java-spring-development has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Rahul Santra· Mar 3, 2024

    Solid pick for teams standardizing on skills: java-spring-development is focused, and the summary matches what you get after install.

  • Pratham Ware· Feb 2, 2024

    We added java-spring-development from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Yash Thakker· Jan 1, 2024

    java-spring-development fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.