Как хранить и получать сообщения об ошибках в Java / Spring

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

Решение, которое я нашел до сих пор:

@Getter
@ConfigurationProperties("com.prefix")
public class ErrorMessages {

    private final UpdateValidator updateValidator = new UpdateValidator();

    @Getter
    @Setter
    public static class UpdateValidator {
        private String orderAlreadyExists;
        private String wrongIsbn;
        private String wrongCourse;
        private String emptyEmail;
        private String wrongEmail;
    }
}

И для файла properties :

com.prefix.updateValidator.orderAlreadyExists=There is an existing successful order with such number

И из моего кода я могу получить это, выполнив:

errorMessages.getOrderUpdateValidator().getOrderAlreadyExists();

Теперь мне не нравится этот способ, но я не хочу иметь что-то подобное:

@Value("${com.prefix.updateValidator.orderAlreadyExists}")
private String orderAlreadyExists;

Другой способ - создать компонент MessageSource . Так каков лучший способ сделать это?

Всего 1 ответ


Для меня лучшее решение - использовать MessageSource по нескольким причинам.

1. Это делает i18n сообщений намного проще.

2. Это очень чисто, потому что вам нужно только внедрить MessageSource в любой компонент и выполнить getMessage(String code, Object[] args, Locale locale) (кроме других методов).

3. Это весенний стандарт.

4. Принимает параметризацию в сообщении.

5. Только добавляя в каждый файл сообщений код языка, например resources/messages/labels_de.properties , Spring автоматически узнает, что файл принадлежит выбранной локали.


Есть идеи?

10000