Я работаю над проектом разработки программного обеспечения среднего размера с Spring Boot 5 консольным приложением с Spring Data Jpa. (не веб-проектом)
Я использую структуру entity->service->repository для сохранения записей.
Для обработки исключений; Я использую MyExceptionHandler (расширенный до java.lang.Exception и созданный мной), который помогает мне форматировать трассировку стека в консоль. Кроме того; Я сохраняю его в файл (exceptions.log)
Я использую MyExceptionHandler во всех своих классах с бесконечным количеством @Service и XxxUtil.java (DateUtil, EncryptionUtil и т. д.)
Мне нужно сохранить содержимое Exception в таблицу базы данных. (Сообщения и форматированной информации на данный момент достаточно - я извлек строку форматированной информации с основной причиной)
Автосвязывание сервиса или репозитория в классе MyExceptionHandler приводит к ожидаемому результату NullPointerException. Мне нужна ваша помощь, чтобы обойти этот шаг.
Я открыт для ваших альтернативных решений, таких как «Почему бы вам не использовать SL4JDBAppender» и т. д.
try {
//some actions
} catch (Exception e) {
saveExceptionToDatabase(e);
new MyExceptionHandler("MyClass.myMethod()", e);
}
Спасибо за ваше руководство
Пожалуйста, укажите код класса MyExceptionHandler. Должна быть возможность автоматически связывать ваши классы, если вы аннотировали @ControllerAdvice. Кроме того, метод, помеченный знаком @ExceptionHandler, не должен иметь модификатор final.
Как я уже отмечал ранее в консольном проекте @ControllerAdvice, веб-аннотации @ExceptionHandler неуместны. Я тестировал простые аннотации, такие как @Component, @Bean, но мне они бесполезны.




У вас есть @Component (или другая аннотация Spring) в классе MyExceptionHandler?