Dzięki sprężyna stemplem próbuję załadować konfigurację za pomocą adnotacji @configurationproperties ("oauth2.discovery") .

Wszystko działa dobrze z wyjątkiem faktu, że klucze zagnieżdżonej mapy nie są ładowane za pomocą zawartości pliku konfiguracyjnego, ale zamiast tego są poprzedzone przez respectidexes.

Jest to kod używany do załadowania konfiguracji:

@ConfigurationProperties("oauth2.discovery")
public class DiscoveryConfigs {

    private Map<String, DiscoveryConfigs.DiscoveryConfig> config;

    public Map<String, DiscoveryConfigs.DiscoveryConfig> getConfig() {
        return this.config;
    }

    public void setConfig(Map<String, DiscoveryConfigs.DiscoveryConfig> discovery) {
        this.config = discovery;
    }

    public static class DiscoveryConfig {
        private String name;
        private Map<String, String> endpoints;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public Map<String, String> getEndpoints() {
            return endpoints;
        }

        public void setEndpoints(Map<String, String> endpoints) {
            this.endpoints = endpoints;
        }
    }
}

To jest mój Application.yml

oauth2:
  discovery:
    config:
      affiliation:
        name: affiliation-service
        endpoints:
          - public: /getPublic
          - forRoleA: /getForRoleA
          - forRoleB: /getForRoleB
      blabla:
        name: ...

I za pomocą DiscovyConfigs , aby załadować Application.yml Mam następujące treści:

(Widok debugera w Intellij)
Endpoints = {LinkedHashMap @ 10957} Rozmiar & GT; = 3
. "0.Public" - & GT; "/ GetPublic"
"1.Forrolea" - & gt; "/ GetforoRolet"
"2.Forroleb" - & gt; "/ Getforroleb"

Gdzie klucze są na przykład "0.Public" zamiast "publiczne"

Jestem pewien, że coś przegapiłem, ale nie mogę zrozumieć co ...

0
Guillaume Barré 21 październik 2020, 18:57

1 odpowiedź

Najlepsza odpowiedź

Kasę opisu do Mapy wiązania na spring.io. Następujące powinny działać:

oauth2:
  discovery:
    config:
      affiliation:
        name: affiliation-service
        endpoints:
          public: /getPublic
          forRoleA: /getForRoleA
          forRoleB: /getForRoleB
1
deleze 21 październik 2020, 16:22