Как привязать объект Map, содержащий Pojos, к файлу yaml? - PullRequest
0 голосов
/ 26 марта 2019

В приложении spring-boot / spring-cloud я хотел бы привязать объект Map к своему application.yml, но у меня есть «Элементы ..., где остается несвязанная ошибка».

В моем классе под названием Ebox я хотел бы связать карту с именем infosTenants, идентифицируемую строкой и содержащую значения типа InfosTenant.

Ниже моего application.yml (без методов получения / установки каждого класса или подкласса)

@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
public class ApplicationProperties {

    private Ebox ebox = new Ebox();

    public ApplicationProperties() {
    }

    // getters/setters ...

    public static class Ebox {
        private String authUrl;
        private Map<String, InfosTenant> infosTenants = new HashMap<>();

        public Ebox() {
        }

        public class InfosTenant{

            private String clientId="";
            private String clientSecret="";

            public InfosTenant() {
            }
            // getters/setters ...

        }
    }
}

В моем application.yml я определил одного арендатора в своей карте арендаторов, идентифицируемогоключевой арендатор1.

application:
    ebox:
        auth-url: https://oauth-server/api/oauth/token
        infos-tenants:
            tenant1:
                client-id: myclient
                client-secret: secret

Но все значения в инфо-арендаторах остались несвязанными.У кого-нибудь есть идея?Спасибо

1 Ответ

0 голосов
/ 26 марта 2019

Я обнаружил свою ошибку, внутренние классы должны быть статическими, я забыл статические перед классом InfosTenant.

public static class InfosTenant{

        private String clientId="";
        private String clientSecret="";

        public InfosTenant() {
        }
        // getters/setters ...

    }
...