Hibernate Validator: Пользовательские сообщения

У меня есть проект Java, и я использую в нем собственный валидатор гибернации. Согласно Hibernate Docs пользовательские сообщения об ошибках должны быть определены как ключ-значение в ValidateMessages.properties, и этот файл должен быть создан в каталоге «classpath». моя проблема в том, что путь к классам находится в «целевом» каталоге, и он будет удален после чистой сборки проекта, поэтому созданный файл .properties исчезнет. как это можно решить?

`@Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})
 @Retention(RUNTIME)
 @Constraint(validatedBy = NCValidator.class)
 @Documented
 public @interface NC {

String message() default "{msg}";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};}

///////////////////////////////

     ` public class NCValidator implements 
      ConstraintValidator<NC, String> {

     @Override
     public void initialize(NC constraintAnnotation) {
     ConstraintValidator.super.initialize(constraintAnnotation);
      }

    @Override
    public boolean isValid(String string, ConstraintValidatorContext 
    context) {
    ...
    ...
    }

  }`

и используйте этот пользовательский валидатор в таком классе:

 `@ValidateNC
  default public String getNC() {
     return (String) get("nC");
  }
 `

person HoseinPanahi    schedule 25.09.2017    source источник
comment
положи это в src/main/resources   -  person Ramanlfc    schedule 25.09.2017
comment
Я поставил его под ресурсы, но это не сработало. Как я должен указать на этот каталог? @Ramanlfc   -  person HoseinPanahi    schedule 25.09.2017


Ответы (1)


Поместите файл .properties в папку resources или в любое место в вашей системе и укажите на него.

person Samuel.F    schedule 25.09.2017
comment
Я добавил в вопрос собственный код проверки подлинности. Но я не понимаю, как указать новый адрес файла. пожалуйста, объясни - person HoseinPanahi; 25.09.2017
comment
Можете ли вы поделиться структурой вашего проекта? - person Samuel.F; 25.09.2017
comment
Что вы имеете в виду под структурой? Я определил собственный валидатор и аннотацию и использовал эту аннотацию в классе для свойства компонента. Затем я создал ValidateMessages.properties в target/classes и определил в нем ключи-значения. и это работает, но после чистой сборки цель исчезнет. @Самуэль.Ф - person HoseinPanahi; 26.09.2017
comment
Не создавайте файл свойств в target/classes, поместите файл в папку src/main/resources. Он будет автоматически отсканирован и получит ваши значения. или, если вы предпочитаете поместить файл в другое место, вы можете сделать это и убедиться, что вы указываете на это местоположение файла при загрузке ресурсов. - person Samuel.F; 27.09.2017