Конфигурация конвертации в SpringBoot - PullRequest
0 голосов
/ 16 ноября 2018

В моей конфигурации у меня есть следующая структура:

uriConfig
    uriConfigList:
      - uri: /someuri
        httpMethods
        - GET
        - POST
      - uri: /anotheruri
        httpMethods
        - DELETE

Конечно, у меня есть класс домена для этой структуры данных, который называется UriConfig.

Мне нужно обработать данные, прочитанные изнастроить и создать карту шаблонов регулярных выражений с URI в качестве ключей:

List<UriConfig> -> Map<UriConfig.uri, Pattern>

Я знаю, как обрабатывать данные и сопоставлять Uris с шаблонами, но как я могу "научить" их SpringBoot?

У меня есть рабочее решение, использующее @PostConstruct, но я хочу не использовать эту аннотацию:

@Getter
@Configuration
@ConfigurationProperties(prefix = "uriConfig")
@Slf4j
public class UriConfiguration {
    public static final String REGEXP_PATTERN = "pattern%s";

    private List<UriConfig> uriConfigList = new ArrayList<>();

    private Map<UriConfig, Pattern> patternList;

    @PostConstruct
    public void init() {
        patternList = uriConfigList.stream()
            .collect(
                Collectors.toMap(
                    Function.identity(),
                    uriConfig -> Pattern.compile(String.format(REGEXP_PATTERN, uriConfig.getUri()))
                )
            );
    }
}

Целевая реализация:

@Getter
@Configuration
@ConfigurationProperties(prefix = "uriConfig")
@Slf4j
public class UriConfiguration {
    public static final String REGEXP_PATTERN = "pattern%s";

    private Map<UriConfig, Pattern> patternList;
}

... и отображениеметод где-то еще.

Есть идеи, как решить эту маленькую проблему?

...