Проблемы с привязкой списка Spring Boot 2.x - PullRequest
0 голосов
/ 08 июня 2018

У меня проблемы с привязкой некоторых списков после обновления до Spring Boot 2x.Код работал в Spring 1.x и теперь выдает ошибку привязки при запуске.Вот мой application.yml ...

aws:
  geo-mappings:
    - name: USA
      regions:
        - us-west-2
        - us-west-1
        - us-east-1
        - us-east-2
    - name: California
      regions:
        - us-west-2

Вот мой класс компонентов ...

package com.example.demo.config.aws;


import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by goer on 4/18/17.
 */
@Component
@Scope("singleton")
@ConfigurationProperties(prefix="aws")
public class AWSConfigProvider {

    private List<GeoMappingEntry> geoMappings = new ArrayList<>();

    public List<GeoMappingEntry> getGeoMappings() {
        return this.geoMappings;
    }


}

Вот вложенный объект ...

package com.example.demo.config.aws;

import java.util.ArrayList;
import java.util.List;


public class GeoMappingEntry {
    private String name;
    private List<String> regions = new ArrayList<>();

    public GeoMappingEntry(String name, List<String> regions) {
        this.name = name;
        this.regions = regions;
    }
}

КогдаЯ пытаюсь запустить, я получаю ...


Приложение не удалось запустить


Описание:

Не удалось связать свойства в 'aws.geo-mappings'to java.util.List:

Reason: Failed to bind properties under 'aws.geo-mappings' to java.util.List<com.example.demo.config.aws.GeoMappingEntry>

Действие:

Обновление конфигурации вашего приложения

Кто-нибудь еще сталкивался с такой же проблемой?Решения?Предложения?

1 Ответ

0 голосов
/ 02 июля 2018

Просто, если кто-то еще смотрит на подобную проблему.Оказалось, что некоторые переменные окружения, которые не работали в предыдущих версиях Spring, теперь могут фактически создавать привязки, и это были ошибки, из-за которых.

В этом случае ослабленная привязка из среды var ксписок типа AWS_GEOMAPPINGS_0_REGIONS_0 = us-west-2 не работал раньше, но теперь работает.До Spring Boot 2.0 единственный способ установить это из переменной среды состоял в том, чтобы передать JSON через SPRING_APPLICATION_JSON, что работает, но усложняется, если вы пытаетесь выполнить развертывание, используя другой JSON, который его инкапсулирует (например, Terraform).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...