diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetails.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetails.java index b06da68040fa..18371b3200fd 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetails.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetails.java @@ -27,7 +27,6 @@ * @author Andy Wilkinson * @author Phillip Webb * @author Scott Frederick - * @author Yanming Zhou */ class PropertiesRedisConnectionDetails implements RedisConnectionDetails { @@ -60,8 +59,7 @@ public Standalone getStandalone() { if (this.properties.getUrl() != null) { ConnectionInfo connectionInfo = ConnectionInfo.of(this.properties.getUrl()); return Standalone.of(connectionInfo.getUri().getHost(), connectionInfo.getUri().getPort(), - (connectionInfo.getDatabase() != null) ? connectionInfo.getDatabase() - : this.properties.getDatabase()); + this.properties.getDatabase()); } return Standalone.of(this.properties.getHost(), this.properties.getPort(), this.properties.getDatabase()); } @@ -77,7 +75,7 @@ public Sentinel getSentinel() { @Override public int getDatabase() { - return getStandalone().getDatabase(); + return PropertiesRedisConnectionDetails.this.properties.getDatabase(); } @Override diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java index 035377ce7319..4b19d54550b4 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java @@ -33,7 +33,6 @@ import org.springframework.data.redis.connection.RedisSentinelConfiguration; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; import org.springframework.util.ClassUtils; -import org.springframework.util.StringUtils; /** * Base Redis connection configuration. @@ -46,7 +45,6 @@ * @author Moritz Halbritter * @author Andy Wilkinson * @author Phillip Webb - * @author Yanming Zhou */ abstract class RedisConnectionConfiguration { @@ -191,14 +189,11 @@ static final class ConnectionInfo { private final String password; - private final Integer database; - - private ConnectionInfo(URI uri, boolean useSsl, String username, String password, Integer database) { + private ConnectionInfo(URI uri, boolean useSsl, String username, String password) { this.uri = uri; this.useSsl = useSsl; this.username = username; this.password = password; - this.database = database; } URI getUri() { @@ -217,10 +212,6 @@ String getPassword() { return this.password; } - Integer getDatabase() { - return this.database; - } - static ConnectionInfo of(String url) { try { URI uri = new URI(url); @@ -242,14 +233,7 @@ static ConnectionInfo of(String url) { password = candidate; } } - Integer database = null; - if (StringUtils.hasText(uri.getPath())) { - String[] pathSplit = uri.getPath().split("/", 2); - if (pathSplit.length > 1 && !pathSplit[1].isEmpty()) { - database = Integer.parseInt(pathSplit[1]); - } - } - return new ConnectionInfo(uri, useSsl, username, password, database); + return new ConnectionInfo(uri, useSsl, username, password); } catch (URISyntaxException ex) { throw new RedisUrlSyntaxException(url, ex); diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisProperties.java index 6fbd7cba4048..27b0f54a4b76 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisProperties.java @@ -31,7 +31,6 @@ * @author Mark Paluch * @author Stephane Nicoll * @author Scott Frederick - * @author Yanming Zhou * @since 1.0.0 */ @ConfigurationProperties(prefix = "spring.data.redis") @@ -43,8 +42,8 @@ public class RedisProperties { private int database = 0; /** - * Connection URL. Overrides host, port, username, password, and database. Example: - * redis://user:password@example.com:6379/8 + * Connection URL. Overrides host, port, username, and password. Example: + * redis://user:password@example.com:6379 */ private String url; diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetailsTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetailsTests.java index 064cae967d5f..4d3aa55ab84f 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetailsTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/PropertiesRedisConnectionDetailsTests.java @@ -103,17 +103,6 @@ void standaloneIsConfiguredFromUrl() { RedisConnectionDetails.Standalone standalone = connectionDetails.getStandalone(); assertThat(standalone.getHost()).isEqualTo("example.com"); assertThat(standalone.getPort()).isEqualTo(1234); - assertThat(standalone.getDatabase()).isEqualTo(9999); - } - - @Test - void standaloneIsConfiguredFromUrlWithoutDatabase() { - this.properties.setUrl("redis://example.com:1234"); - this.properties.setDatabase(5); - PropertiesRedisConnectionDetails connectionDetails = new PropertiesRedisConnectionDetails(this.properties); - RedisConnectionDetails.Standalone standalone = connectionDetails.getStandalone(); - assertThat(standalone.getHost()).isEqualTo("example.com"); - assertThat(standalone.getPort()).isEqualTo(1234); assertThat(standalone.getDatabase()).isEqualTo(5); } @@ -144,22 +133,9 @@ void sentinelIsConfigured() { RedisProperties.Sentinel sentinel = new RedisProperties.Sentinel(); sentinel.setNodes(List.of("localhost:1111", "127.0.0.1:2222", "[::1]:3333")); this.properties.setSentinel(sentinel); - this.properties.setDatabase(5); PropertiesRedisConnectionDetails connectionDetails = new PropertiesRedisConnectionDetails(this.properties); assertThat(connectionDetails.getSentinel().getNodes()).containsExactly(new Node("localhost", 1111), new Node("127.0.0.1", 2222), new Node("[::1]", 3333)); - assertThat(connectionDetails.getSentinel().getDatabase()).isEqualTo(5); - } - - @Test - void sentinelDatabaseIsConfiguredFromUrl() { - RedisProperties.Sentinel sentinel = new RedisProperties.Sentinel(); - sentinel.setNodes(List.of("localhost:1111", "127.0.0.1:2222", "[::1]:3333")); - this.properties.setSentinel(sentinel); - this.properties.setUrl("redis://example.com:1234/9999"); - this.properties.setDatabase(5); - PropertiesRedisConnectionDetails connectionDetails = new PropertiesRedisConnectionDetails(this.properties); - assertThat(connectionDetails.getSentinel().getDatabase()).isEqualTo(9999); } }