Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
giuseppe-trisciuoglio avatar

Spring Boot Cache

  • 21 installs
  • 318 repo stars
  • Updated June 22, 2026
  • giuseppe-trisciuoglio/developer-kit-claude-code

This is a copy of spring-boot-cache by giuseppe-trisciuoglio - installs and ranking accrue to the original listing.

Helps with ai & agent building tasks.

About

spring-boot-cache is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • spring-boot-cache
  • AI & Agent Building
  • AI-coding skill

Spring Boot Cache by the numbers

  • 21 all-time installs (skills.sh)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit-claude-code --skill spring-boot-cache

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs21
repo stars318
Last updatedJune 22, 2026
Repositorygiuseppe-trisciuoglio/developer-kit-claude-code

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

Spring Boot Cache Abstraction

Overview

6-step workflow for enabling cache abstraction, configuring providers (Caffeine, Redis, Ehcache), annotating service methods, and validating behavior in Spring Boot 3.5+ applications. Apply @Cacheable for reads, @CachePut for writes, @CacheEvict for deletions. Configure TTL/eviction policies and expose metrics via Actuator.

When to Use

  • Add @Cacheable, @CachePut, or @CacheEvict to service methods.
  • Configure Caffeine, Redis, or Ehcache with TTL and capacity policies.
  • Implement eviction strategies for stale data.
  • Diagnose cache misses or invalidation issues.
  • Expose hit/miss metrics via Actuator or Micrometer.

Instructions

1. Add dependenciesspring-boot-starter-cache plus a provider:

  • Caffeine: caffeine starter
  • Redis: spring-boot-starter-data-redis
  • Ehcache: ehcache starter

2. Enable caching — annotate a @Configuration class with @EnableCaching and define a CacheManager bean.

3. Annotate methods@Cacheable for reads, @CachePut for writes, @CacheEvict for deletions.

4. Configure TTL/eviction — set spring.cache.caffeine.spec, spring.cache.redis.time-to-live, or spring.cache.ehcache.config.

5. Shape keys — use SpEL in key attributes; guard with condition/unless for selective caching.

6. Validate setup — run integration test to confirm cache hit on second call; check GET /actuator/caches to verify cache manager registration; query GET /actuator/metrics/cache.gets for hit/miss ratios.

Examples

Example 1: Basic @Cacheable Usage

@Service
@CacheConfig(cacheNames = "users")
class UserService {

    @Cacheable(key = "#id", unless = "#result == null")
    User findUser(Long id) { ... }
}
First call → cache miss, repository invoked
Second call → cache hit, repository skipped

Example 2: Conditional Caching with SpEL

@Cacheable(value = "products", key = "#id", condition = "#price > 100")
public Product getProduct(Long id, BigDecimal price) { ... }

// Only expensive products are cached

Example 3: Cache Eviction

@CacheEvict(value = "users", key = "#id")
public void deleteUser(Long id) { ... }

For progressive scenarios (basic product cache, multilevel eviction, Redis integration), load `references/cache-examples.md`.

Advanced Options

  • Use JCache annotations (@CacheResult, @CacheRemove) for providers favoring

JSR-107 interoperability; avoid mixing with Spring annotations on the same method.

  • Cache reactive return types (Mono, Flux) or CompletableFuture values.
  • Apply HTTP CacheControl headers when exposing cached responses via REST.
  • Schedule periodic eviction with @Scheduled for time-bound caches.
  • Create a CacheManagementService for programmatic cacheManager.getCache(name).

Troubleshooting

If cache misses persist after adding @Cacheable:

1. Verify @EnableCaching is present on a @Configuration class. 2. Confirm the method is public and called from outside the class (Spring uses proxies; self-invocation bypasses the cache). 3. Validate SpEL key expressions resolve correctly. 4. Confirm the cache manager bean is registered as cacheManager or explicitly referenced via cacheManager = "myCacheManager".

References

  • `references/spring-framework-cache-docs.md`:

curated excerpts from Spring Framework Reference Guide.

  • `references/spring-cache-doc-snippet.md`:

narrative overview from Spring documentation.

  • `references/cache-core-reference.md`:

annotation parameters, dependency matrices, property catalogs.

  • `references/cache-examples.md`:

end-to-end examples with tests.

Best Practices

  • Prefer constructor injection and immutable DTOs for cache entries.
  • Separate cache names per aggregate (users, orders) to simplify eviction.
  • Log cache hits/misses only at debug; push metrics via Micrometer.
  • Tune TTLs based on data staleness tolerance; document rationale in code.
  • Guard caches storing PII or credentials with encryption or avoid caching.
  • Align cache eviction with transactional boundaries to prevent dirty reads.

Constraints and Warnings

  • Avoid caching mutable entities that depend on open persistence contexts.
  • Do not mix Spring cache annotations with JCache annotations on the same method.
  • Validate serialization compatibility when caching across service instances.
  • Monitor memory footprint to prevent OOM with in-memory stores.
  • Caffeine + Redis multi-level caches require publish/subscribe invalidation channels.

Related Skills

  • `../spring-boot-rest-api-standards`
  • `../spring-boot-test-patterns`
  • `../unit-test-caching`

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.