Introduce value alias for cacheNames in @⁠CacheConfig

Prior to this commit @⁠CacheConfig did not have a `value` attribute
alias for `cacheNames`, even though the rest of the cache-related
annotations (such as @⁠Cacheable, @⁠CachePut, etc.) do have a `value` /
`cacheNames` alias pair.

To address that inconsistency, this commit introduces a `value` alias
for `cacheNames` in @⁠CacheConfig as well.

See gh-35096
Closes gh-35152
This commit is contained in:
Sam Brannen 2025-07-03 17:16:23 +02:00
parent c6a8df4a9d
commit 6091453feb
8 changed files with 20 additions and 9 deletions

View File

@ -129,7 +129,7 @@ class CaffeineReactiveCachingTests {
}
@CacheConfig(cacheNames = "first")
@CacheConfig("first")
static class ReactiveCacheableService {
private final AtomicLong counter = new AtomicLong();

View File

@ -22,6 +22,8 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
/**
* {@code @CacheConfig} provides a mechanism for sharing common cache-related
* settings at the class level.
@ -39,6 +41,13 @@ import java.lang.annotation.Target;
@Documented
public @interface CacheConfig {
/**
* Alias for {@link #cacheNames}.
* @since 7.0
*/
@AliasFor("cacheNames")
String[] value() default {};
/**
* Names of the default caches to consider for caching operations defined
* in the annotated class.
@ -47,7 +56,9 @@ public @interface CacheConfig {
* configured {@link #cacheResolver()} which typically delegates to
* {@link org.springframework.cache.CacheManager#getCache}.
* For further details see {@link Cacheable#cacheNames()}.
* @see #value
*/
@AliasFor("value")
String[] cacheNames() default {};
/**

View File

@ -443,7 +443,7 @@ class AnnotationCacheOperationSourceTests {
}
@CacheConfig(cacheNames = "myCache")
@CacheConfig("myCache")
private interface CacheConfigIfc {
@Cacheable

View File

@ -256,7 +256,7 @@ class ReactiveCachingTests {
}
@CacheConfig(cacheNames = "first")
@CacheConfig("first")
static class ReactiveCacheableService {
private final AtomicLong counter = new AtomicLong();
@ -282,7 +282,7 @@ class ReactiveCachingTests {
}
@CacheConfig(cacheNames = "first")
@CacheConfig("first")
static class ReactiveSyncCacheableService {
private final AtomicLong counter = new AtomicLong();
@ -304,7 +304,7 @@ class ReactiveCachingTests {
}
@CacheConfig(cacheNames = "first")
@CacheConfig("first")
static class ReactiveFailureCacheableService {
private final AtomicBoolean cacheFutureInvoked = new AtomicBoolean();

View File

@ -200,7 +200,7 @@ class EnableCachingIntegrationTests {
}
@CacheConfig(cacheNames = "testCache")
@CacheConfig("testCache")
static class FooServiceImpl implements FooService {
private final AtomicLong counter = new AtomicLong();

View File

@ -261,7 +261,7 @@ class CacheErrorHandlerTests {
}
@CacheConfig(cacheNames = "test")
@CacheConfig("test")
public static class SimpleService {
private AtomicLong counter = new AtomicLong();

View File

@ -121,7 +121,7 @@ class CachePutEvaluationTests {
}
@CacheConfig(cacheNames = "test")
@CacheConfig("test")
public static class SimpleService {
private AtomicLong counter = new AtomicLong();

View File

@ -206,7 +206,7 @@ class CacheResolverCustomizationTests {
}
@CacheConfig(cacheNames = "default")
@CacheConfig("default")
static class SimpleService {
private final AtomicLong counter = new AtomicLong();