1

我有一个简单的类来捕获一些这样的异常:

@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 配置和属性文件。

也许关键是我将所有这些移到的项目是一个库(没有主要功能)?

4

0 回答 0