From cc5aae457eef2ab5925669b4c608bbb3f003e694 Mon Sep 17 00:00:00 2001 From: woshikid Date: Wed, 11 Jan 2023 17:26:36 +0800 Subject: [PATCH] Adjust the priority of the configs --- .../JdbcEnvironmentRepository.java | 10 +++--- .../JdbcEnvironmentRepositoryTests.java | 32 +++++++++---------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java index aaca7b4de9..7bec38cabf 100644 --- a/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java +++ b/spring-cloud-config-server/src/main/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepository.java @@ -119,12 +119,14 @@ public Environment findOne(String application, String profile, String label) { List envs = new ArrayList<>(new LinkedHashSet<>(Arrays.asList(profiles))); Collections.reverse(applications); Collections.reverse(envs); - for (String app : applications) { - for (String env : envs) { + for (String env : envs) { + for (String app : applications) { addPropertySource(environment, app, env, label); } - // add properties without profile, equivalent to foo.yml, application.yml - if (!configIncomplete) { + } + // add properties without profile, equivalent to foo.yml, application.yml + if (!configIncomplete) { + for (String app : applications) { addPropertySource(environment, app, null, label); } } diff --git a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepositoryTests.java b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepositoryTests.java index 3c26b975b4..979fa28402 100644 --- a/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepositoryTests.java +++ b/spring-cloud-config-server/src/test/java/org/springframework/cloud/config/server/environment/JdbcEnvironmentRepositoryTests.java @@ -63,10 +63,10 @@ public void basicProperties() { assertThat(env.getPropertySources()).isNotEmpty(); assertThat(env.getPropertySources().get(0).getName()).isEqualTo("foo-bar"); assertThat(env.getPropertySources().get(0).getSource().get("a.b.c")).isEqualTo("foo-bar"); - assertThat(env.getPropertySources().get(1).getName()).isEqualTo("foo"); - assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("foo-null"); - assertThat(env.getPropertySources().get(2).getName()).isEqualTo("application-bar"); - assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(1).getName()).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(2).getName()).isEqualTo("foo"); + assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("foo-null"); assertThat(env.getPropertySources().get(3).getName()).isEqualTo("application"); assertThat(env.getPropertySources().get(3).getSource().get("a.b.c")).isEqualTo("application-null"); } @@ -82,10 +82,10 @@ public void testDefaultProfile() { assertThat(env.getPropertySources()).isNotEmpty(); assertThat(env.getPropertySources().get(0).getName()).isEqualTo("foo-default"); assertThat(env.getPropertySources().get(0).getSource().get("a.b.c")).isEqualTo("foo-default"); - assertThat(env.getPropertySources().get(1).getName()).isEqualTo("foo"); - assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("foo-null"); - assertThat(env.getPropertySources().get(2).getName()).isEqualTo("application-default"); - assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("application-default"); + assertThat(env.getPropertySources().get(1).getName()).isEqualTo("application-default"); + assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("application-default"); + assertThat(env.getPropertySources().get(2).getName()).isEqualTo("foo"); + assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("foo-null"); assertThat(env.getPropertySources().get(3).getName()).isEqualTo("application"); assertThat(env.getPropertySources().get(3).getSource().get("a.b.c")).isEqualTo("application-null"); } @@ -147,10 +147,10 @@ public void testCustomSql() { assertThat(env.getPropertySources()).isNotEmpty(); assertThat(env.getPropertySources().get(0).getName()).isEqualTo("foo-bar"); assertThat(env.getPropertySources().get(0).getSource().get("a.b.c")).isEqualTo("foo-bar"); - assertThat(env.getPropertySources().get(1).getName()).isEqualTo("foo"); - assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("foo-null"); - assertThat(env.getPropertySources().get(2).getName()).isEqualTo("application-bar"); - assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(1).getName()).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(2).getName()).isEqualTo("foo"); + assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("foo-null"); assertThat(env.getPropertySources().get(3).getName()).isEqualTo("application"); assertThat(env.getPropertySources().get(3).getSource().get("a.b.c")).isEqualTo("application-null"); } @@ -167,10 +167,10 @@ public void testIncompleteConfig() { assertThat(env.getPropertySources()).isNotEmpty(); assertThat(env.getPropertySources().get(0).getName()).isEqualTo("foo-bar"); assertThat(env.getPropertySources().get(0).getSource().get("a.b.c")).isEqualTo("foo-bar"); - assertThat(env.getPropertySources().get(1).getName()).isEqualTo("foo-default"); - assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("foo-default"); - assertThat(env.getPropertySources().get(2).getName()).isEqualTo("application-bar"); - assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(1).getName()).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(1).getSource().get("a.b.c")).isEqualTo("application-bar"); + assertThat(env.getPropertySources().get(2).getName()).isEqualTo("foo-default"); + assertThat(env.getPropertySources().get(2).getSource().get("a.b.c")).isEqualTo("foo-default"); assertThat(env.getPropertySources().get(3).getName()).isEqualTo("application-default"); assertThat(env.getPropertySources().get(3).getSource().get("a.b.c")).isEqualTo("application-default"); }