Spring Boot Patterns

中级 Intermediate 参考型 Reference ⚡ Claude Code 专属 ⚡ Claude Code Optimized
2 min read · 99 lines

Spring Boot patterns — layered architecture, REST APIs, JPA, and environment profiles

Spring Boot Patterns

Files: skills/springboot-patterns/SKILL.md + skills/jpa-patterns/SKILL.md

JPA/Hibernate Patterns

Entity Design

  • @EntityListeners(AuditingEntityListener.class) for @CreatedDate/@LastModifiedDate
  • @Enumerated(EnumType.STRING) for enum fields
  • Indexes on common query fields

N+1 Prevention

  • Default to lazy loading
  • JOIN FETCH in JPQL when eager loading needed
  • DTO projections for read-only paths

Repository

  • Spring Data JPA interfaces with custom JPQL
  • Interface-based projections for lightweight queries
  • Cursor pagination: id > :lastId with ordering

Transactions

@Transactional on service methods. readOnly = true for queries. Short transactions.

Connection Pool (HikariCP)

maximum-pool-size=20, minimum-idle=5, connection-timeout=30000

Migrations

Flyway or Liquibase. Never Hibernate auto DDL in production.

Testing

@DataJpaTest with Testcontainers. Verify SQL efficiency via Hibernate SQL logging.


Production Defaults

  • Constructor injection (no field injection)
  • spring.mvc.problemdetails.enabled=true (RFC 7807)
  • Null-safety via @NonNull and Optional
  • Structured JSON logging via Logback
  • Metrics: Micrometer + Prometheus/OTel

Remember: Keep controllers thin, services focused, repositories simple, errors handled centrally.

相关技能 Related Skills