Как избежать дубликатов с @ConfigurationProperties? - PullRequest
0 голосов
/ 14 февраля 2019

У меня есть @ConfigurationProperties класс:

@Configuration
@Validated
@ConfigurationProperties(prefix="error")
@PropertySource("classpath:errorMessages.properties")
public class ErrorConfig {

  @NotEmpty
  private HashMap<Long, String> messages = new HashMap<>();

  public String getStandardText(long code) {
    return messages.get(code);
  }
}

И этот файл errorMessages.properties:

#ErrorHandler errors
error.messages.2=value with different type
error.messages.3=url value not valid
error.messages.4=request body not valid
error.messages.5=null pointer exception, ask for support
error.messages.6=numeric values only with numbers, dates should use 'yyyy-MM-dd' format and booleans only accept true or false
# Core errors
error.messages.1=entity not found
error.messages.7=several entities found

При приведении какого-то исключения я использую

errorConfigInstance.getStandardText(3);

например.Благодаря этому я могу выводить свои сообщения об ошибках.Но у меня есть одна проблема.Разработчик вставил новую ошибку, забыв использовать новый номер, и поскольку я использовал HashMap, он был перезаписан последним.Как я могу завершить работу моего приложения при запуске, если Spring обнаружит повторяющиеся записи?Используя @NotEmpty, мне уже удалось остановить запуск, если строки не найдены.Это возможно весной?

...