Browse Source

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
pull/35163/head
Sam Brannen 6 months ago
parent
commit
6091453feb
  1. 2
      spring-context-support/src/test/java/org/springframework/cache/caffeine/CaffeineReactiveCachingTests.java
  2. 11
      spring-context/src/main/java/org/springframework/cache/annotation/CacheConfig.java
  3. 2
      spring-context/src/test/java/org/springframework/cache/annotation/AnnotationCacheOperationSourceTests.java
  4. 6
      spring-context/src/test/java/org/springframework/cache/annotation/ReactiveCachingTests.java
  5. 2
      spring-context/src/test/java/org/springframework/cache/config/EnableCachingIntegrationTests.java
  6. 2
      spring-context/src/test/java/org/springframework/cache/interceptor/CacheErrorHandlerTests.java
  7. 2
      spring-context/src/test/java/org/springframework/cache/interceptor/CachePutEvaluationTests.java
  8. 2
      spring-context/src/test/java/org/springframework/cache/interceptor/CacheResolverCustomizationTests.java

2
spring-context-support/src/test/java/org/springframework/cache/caffeine/CaffeineReactiveCachingTests.java vendored

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

11
spring-context/src/main/java/org/springframework/cache/annotation/CacheConfig.java vendored

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

2
spring-context/src/test/java/org/springframework/cache/annotation/AnnotationCacheOperationSourceTests.java vendored

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

6
spring-context/src/test/java/org/springframework/cache/annotation/ReactiveCachingTests.java vendored

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

2
spring-context/src/test/java/org/springframework/cache/config/EnableCachingIntegrationTests.java vendored

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

2
spring-context/src/test/java/org/springframework/cache/interceptor/CacheErrorHandlerTests.java vendored

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

2
spring-context/src/test/java/org/springframework/cache/interceptor/CachePutEvaluationTests.java vendored

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

2
spring-context/src/test/java/org/springframework/cache/interceptor/CacheResolverCustomizationTests.java vendored

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

Loading…
Cancel
Save