Мне нужно сохранить исключение в базу данных

Я работаю над проектом разработки программного обеспечения среднего размера с 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);
    }

Спасибо за ваше руководство

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

Woworks 01.03.2019 15:32

Пожалуйста, укажите код класса MyExceptionHandler. Должна быть возможность автоматически связывать ваши классы, если вы аннотировали @ControllerAdvice. Кроме того, метод, помеченный знаком @ExceptionHandler, не должен иметь модификатор final.

dambros 01.03.2019 15:35

Как я уже отмечал ранее в консольном проекте @ControllerAdvice, веб-аннотации @ExceptionHandler неуместны. Я тестировал простые аннотации, такие как @Component, @Bean, но мне они бесполезны.

cracker web 02.03.2019 13:11
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
3
564
0

Другие вопросы по теме