Я создал таблицы для перечислений в БД и прикладную ссылочную целостность с основными таблицами. Но мне нужно проверить значения enum на значения DB при запуске приложения весной.Как проверить значения enum на значения DB в весенней загрузке при запуске приложения
ответ
Spring предлагает интерфейс Lifecycle
, который вы можете реализовать, и контейнер уведомит вас об этом после его начала. Затем вы можете запросить свой db для выполнения любых проверок, которые вам нужны. Из документации:
Любой объект, управляемый Spring, может реализовать этот интерфейс. Затем, когда сам ApplicationContext запускается и останавливается, он будет каскадировать эти вызовы для всех реализаций Lifecycle, определенных в этом контексте. Она делает это путем делегирования в LifecycleProcessor:
Для весеннего ботинка, в частности, я считаю, самое простое решение, чтобы быть в SpringApplicationRunListener
Если класс не добавляется автоматически при @ComponentScan, вы должны реализовать ваш слушатель и зарегистрируйте его в файле spring.factories.
org.springframework.boot.SpringApplicationRunListener=xxx.MyListener
Он определяет очень четкие крючки для жизненного цикла пружинной загрузки. Внимание: хотя это только интерфейс, исполнительный класс должен предоставить специальный конструктор:
public MyListener(SpringApplication application, String[] args) {}