В моей конфигурации у меня есть следующая структура:
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;
}
... и отображениеметод где-то еще.
Есть идеи, как решить эту маленькую проблему?