From 2ab78086c4b91dcd305b60a33fa49ca97ee37e6a Mon Sep 17 00:00:00 2001 From: jouzi5 <03452136@yto.net.cn> Date: Thu, 15 Jan 2026 17:19:36 +0800 Subject: [PATCH 1/2] warn log only if cache feature is enabled Signed-off-by: jouzi5 <03452136@yto.net.cn> --- .../loadbalancer/config/LoadBalancerCacheAutoConfiguration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java index 2456f76f6..5b2bcd2a5 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java @@ -75,6 +75,7 @@ public class LoadBalancerCacheAutoConfiguration { @Configuration(proxyBeanMethods = false) @Conditional(OnCaffeineCacheMissingCondition.class) + @ConditionalOnClass(ConcurrentMapWithTimedEviction.class) protected static class LoadBalancerCacheManagerWarnConfiguration { @Bean From 05db7a8ea3155c3e0facc2537fead65ca211f822 Mon Sep 17 00:00:00 2001 From: jouzi5 <03452136@yto.net.cn> Date: Sat, 17 Jan 2026 11:48:46 +0800 Subject: [PATCH 2/2] Warn log only if cache feature is enabled Signed-off-by: jouzi5 <2741930154@qq.com> --- .../LoadBalancerCacheAutoConfiguration.java | 47 ++++++++----------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java index 5b2bcd2a5..51b17f41e 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java @@ -73,33 +73,6 @@ @Conditional(LoadBalancerCacheAutoConfiguration.OnLoadBalancerCachingEnabledCondition.class) public class LoadBalancerCacheAutoConfiguration { - @Configuration(proxyBeanMethods = false) - @Conditional(OnCaffeineCacheMissingCondition.class) - @ConditionalOnClass(ConcurrentMapWithTimedEviction.class) - protected static class LoadBalancerCacheManagerWarnConfiguration { - - @Bean - LoadBalancerCaffeineWarnLogger caffeineWarnLogger() { - return new LoadBalancerCaffeineWarnLogger(); - } - - } - - static class LoadBalancerCaffeineWarnLogger implements InitializingBean { - - private static final Log LOG = LogFactory.getLog(LoadBalancerCaffeineWarnLogger.class); - - @Override - public void afterPropertiesSet() { - if (LOG.isWarnEnabled()) { - LOG.warn("Spring Cloud LoadBalancer is currently working with the default cache. " - + "While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production." - + "You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath."); - } - } - - } - @Configuration(proxyBeanMethods = false) @ConditionalOnClass({ Caffeine.class, CaffeineCacheManager.class }) protected static class CaffeineLoadBalancerCacheManagerConfiguration { @@ -123,6 +96,11 @@ LoadBalancerCacheManager defaultLoadBalancerCacheManager(LoadBalancerCacheProper return new DefaultLoadBalancerCacheManager(cacheProperties); } + @Bean + LoadBalancerCaffeineWarnLogger caffeineWarnLogger() { + return new LoadBalancerCaffeineWarnLogger(); + } + } static final class OnCaffeineCacheMissingCondition extends AnyNestedCondition { @@ -161,6 +139,21 @@ static class LoadBalancerCacheEnabled { } + static class LoadBalancerCaffeineWarnLogger implements InitializingBean { + + private static final Log LOG = LogFactory.getLog(LoadBalancerCaffeineWarnLogger.class); + + @Override + public void afterPropertiesSet() { + if (LOG.isWarnEnabled()) { + LOG.warn("Spring Cloud LoadBalancer is currently working with the default cache. " + + "While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production." + + "You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath."); + } + } + + } + } // Remove after adding hints to GraalVM reachability metadata repo