claudegoodies
Skill

springboot-patterns

From affaan-m

Patrones de arquitectura Spring Boot, diseño de API REST, servicios en capas, acceso a datos, caché, procesamiento asíncrono y logging. Usar para trabajo de backend en Java con Spring Boot.

Provides Spring Boot code templates for REST controllers, JPA repositories, services, caching, async, and logging.

Use it when

  • Structuring controller/service/repository layers in a Java Spring Boot app
  • Adding validation, global exception handling, or pagination to a REST API
  • Setting up @Cacheable/@CacheEvict caching or @Async processing
  • Writing SLF4J logging or a request-logging filter

Skip it if

  • Not using Java or Spring Boot
  • Just need boilerplate copy-paste, no architectural decisions provided beyond snippets
  • Content is entirely in Spanish, may hinder non-Spanish speakers

Facts

Repository
affaan-m/ECC
Status
Actively maintained
Last commit

Source preview

The instructions Claude Code reads when this skill runs.

# Patrones de Desarrollo Spring Boot

Patrones de arquitectura y API de Spring Boot para servicios escalables y listos para producción.

## Cuándo Activar

- Construir APIs REST con Spring MVC o WebFlux
- Estructurar capas controller → service → repository
- Configurar Spring Data JPA, caché o procesamiento asíncrono
- Agregar validación, manejo de excepciones o paginación
- Configurar perfiles para entornos dev/staging/producción
- Implementar patrones orientados a eventos con Spring Events o Kafka

## Estructura de API REST

```java
@RestController
@RequestMapping("/api/markets")
@Validated
class MarketController {
  private final MarketService marketService;

  MarketController(MarketService marketService) {
    this.marketService = marketService;
  }

  @GetMapping
  ResponseEntity<Page<MarketResponse>> list(
      @RequestParam(defaultValue = "0") int page,
      @RequestParam(defaultValue = "20") int size) {
    Page<Market> markets = marketService.list(PageRequest.of(page, size));
    return ResponseEntity.ok(markets.map(MarketResponse::from));
  }

  @PostMapping
  ResponseEntity<MarketResponse> create(@Valid @RequestBody CreateMarketRequest request) {
    Market market = marketService.create(request);
    return ResponseEntity.status(HttpStatus.CREATED).body(MarketResponse.from(market));
  }
}
```

## Patrón de Repositorio (Spring Data JPA)

```java
public interface Ma
View full source on GitHub →

Other skills