엔티티 설정자에서 기본 유효성 검사를 수행하고 모델이 유효하지 않은 경우 도메인 예외를 발생시키는 sdr 프로젝트가 있습니다. 예외 내에서 메시지 소스를 가져올 수 없기 때문에 비즈니스 예외 메시지를 현지화 할 수 있습니다. 내가 시도 사용자 정의 예외 클래스는 다음과 같습니다스프링 데이터 나머지 i18n 도메인 예외
@ResponseStatus(org.springframework.http.HttpStatus.CONFLICT)
public class DoublePriceException extends Exception {
@Autowired
static ReloadableResourceBundleMessageSource messageSource;
private static final long serialVersionUID = 1L;
public DoublePriceException(OrderItem orderItem) {
super(String.format(
messageSource.getMessage("exception.doublePricedItem", null, LocaleContextHolder.getLocale()),
orderItem.name));
}
}
을 내가 던질하려고 어떻게 mofo은 다음과 같습니다
public void setPrices(List<Price> prices) throws DoublePriceException {
for (Price price : prices) {
List<Price> itemsPrices = prices.stream().filter(it -> price.item.equals(it.item)).collect(Collectors.toList());
if(itemsPrices.size() > 1)
throw new DoublePriceException(itemsPrices.get(0).item);
}
this.prices = prices;
}
MessageSource를 항상 null입니다. 나는 성취 할 수없는 것을 시도하고 있는가?
나는이 작업을 가져올 수 없습니다. "org.springframework.http.converter.HttpMessageNotReadableException : 문서를 읽을 수 없습니다 : DoublePriceException"이 계속 나타납니다. 나는 스프링 부트 1.4.0을 사용하고 있으며 행운이없는 @RestControllerAdvice도 시도했다. – aycanadal