我有一个简单的类来捕获一些这样的异常:
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(RuntimeException.class)
public ResponseEntity<Object> handleRuntimeException(Exception ex) {
log.debug("[RuntimeException throw]");
return new ResponseEntity<>(responseMessage, HttpStatus.OK);
}
}
然后我可以抛出新的 RuntimeException 并且可以在控制台中看到输出日志。
它做得很好,但我必须将 RestResponseEntityExceptionHandler.class 作为 lib 移动到另一个项目,并像 pom.xml 中的 maven 依赖项一样添加它。
同样在主项目中添加了扩展移动的 ControllerAdvice:
@ControllerAdvice
public class ResponseEntityExceptionHandler extends RestResponseEntityExceptionHandler { }
之后它不起作用。我有下一个例外:
org.springframework.context.NoSuchMessageException:在语言环境“ru_RU”的代码“描述”下找不到消息。
当 RestResponseEntityExceptionHandler 在主项目中时,我有了下一个 bean 定义:
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource
= new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
在“资源”文件夹中,我有messager_ru.properties文件。我也移动了 messageSource bean 配置和属性文件。
也许关键是我将所有这些移到的项目是一个库(没有主要功能)?