# Nothing in application.yml selects a provider. Something still chose one.

spring.cache.type          : (not set)
resolved CacheManager bean : org.springframework.cache.caffeine.CaffeineCacheManager

Caffeine is on this module's classpath because a later chapter needs TTL and
size bounds. That single dependency moved every cache in the application off
the ConcurrentHashMap-backed 'simple' provider.

--- the detection order, read out of the enum rather than the documentation ---
  1 GENERIC
  2 JCACHE
  3 HAZELCAST
  4 COUCHBASE
  5 INFINISPAN
  6 REDIS
  7 CACHE2K
  8 CAFFEINE
  9 SIMPLE
  10 NONE

CacheConfigurations maps CacheType -> configuration class in an EnumMap, so
the configurations are imported in this declaration order and the first one
whose @ConditionalOnClass matches registers the CacheManager. The rest back
off on @ConditionalOnMissingBean.

Spring Boot's reference documentation lists this order as Generic, JCache,
Hazelcast, Infinispan, Couchbase, Redis, Caffeine, Cache2k, Simple. On
4.1.1 the enum disagrees in two places: COUCHBASE comes before INFINISPAN,
and CACHE2K comes before CAFFEINE. The second one is the one that can bite:
with both on the classpath you get Cache2k, not Caffeine.

Nothing logs the decision at INFO. Set spring.cache.type explicitly.
