From 3dba4c8f4eabba9bfc91717e9feebdd52ba5b99c Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 20 Jan 2020 16:02:38 +0100 Subject: [PATCH] Polish "Document RedisCacheManagerBuilderCustomizer" See gh-19819 --- .../src/main/asciidoc/spring-boot-features.adoc | 17 +++++++++-------- ... RedisCacheManagerCustomizationExample.java} | 10 ++++++---- 2 files changed, 15 insertions(+), 12 deletions(-) rename spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/{redis/RedisCacheManagerBuilderCustomizerConfiguration.java => RedisCacheManagerCustomizationExample.java} (85%) diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc index 898b3ede13d..ea9341d0bb0 100644 --- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc +++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc @@ -4771,19 +4771,20 @@ For instance, the following configuration creates `cache1` and `cache2` caches w spring.cache.redis.time-to-live=600000 ---- -If you require more control over `RedisCacheManager` e.g. set _time to live_ for the particular caches, you can customize `org.springframework.data.redis.cache.RedisCacheManager$RedisCacheManagerBuilder` -programmatically by declaring `RedisCacheManagerBuilderCustomizer` bean(s) as shown in the following example: +NOTE: By default, a key prefix is added so that, if two separate caches use the same key, Redis does not have overlapping keys and cannot return invalid values. +We strongly recommend keeping this setting enabled if you create your own `RedisCacheManager`. + +TIP: You can take full control of the default configuration by adding a `RedisCacheConfiguration` `@Bean` of your own. +This can be useful if you're looking for customizing the default serialization strategy. + +If you need more control over the configuration, consider registering a `RedisCacheManagerBuilderCustomizer` bean. +The following example shows a customizer that configures a specific time to live for `cache1` and `cache2`: [source,java,indent=0] ---- -include::{code-examples}/cache/redis/RedisCacheManagerBuilderCustomizerConfiguration.java[tag=configuration] +include::{code-examples}/cache/RedisCacheManagerCustomizationExample.java[tag=configuration] ---- -NOTE: By default, a key prefix is added so that, if two separate caches use the same key, Redis does not have overlapping keys and cannot return invalid values. -We strongly recommend keeping this setting enabled if you create your own `RedisCacheManager`. - -TIP: You can take full control of the configuration by adding a `RedisCacheConfiguration` `@Bean` of your own. -This can be useful if you're looking for customizing the serialization strategy. diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/redis/RedisCacheManagerBuilderCustomizerConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/RedisCacheManagerCustomizationExample.java similarity index 85% rename from spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/redis/RedisCacheManagerBuilderCustomizerConfiguration.java rename to spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/RedisCacheManagerCustomizationExample.java index 3c4d0fc13d1..88f56fa93d8 100644 --- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/redis/RedisCacheManagerBuilderCustomizerConfiguration.java +++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/cache/RedisCacheManagerCustomizationExample.java @@ -14,6 +14,8 @@ * limitations under the License. */ +package org.springframework.boot.docs.cache; + import java.time.Duration; import org.springframework.boot.autoconfigure.cache.RedisCacheManagerBuilderCustomizer; @@ -27,12 +29,12 @@ import org.springframework.data.redis.cache.RedisCacheConfiguration; * * @author Dmytro Nosan */ -// tag::configuration[] @Configuration(proxyBeanMethods = false) -public class RedisCacheManagerBuilderCustomizerConfiguration { +public class RedisCacheManagerCustomizationExample { + // tag::configuration[] @Bean - public RedisCacheManagerBuilderCustomizer ttlRedisCacheManagerBuilderCustomizer() { + public RedisCacheManagerBuilderCustomizer myRedisCacheManagerBuilderCustomizer() { return (builder) -> builder .withCacheConfiguration("cache1", RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofSeconds(10))) @@ -40,6 +42,6 @@ public class RedisCacheManagerBuilderCustomizerConfiguration { RedisCacheConfiguration.defaultCacheConfig().entryTtl(Duration.ofMinutes(1))); } + // end::configuration[] } -// end::configuration[]