Можем ли мы вызвать метод весной в случае сбоя запуска приложения

#spring #spring-boot

#spring #spring-boot

Вопрос:

У меня ситуация, когда мне нужно выполнить определенные задачи на случай, если мои приложения springboot не запустятся. По сути, я хочу освободить различные ресурсы. Я попытался использовать аннотацию @PreDestroy, но это не сработало, так как приложение еще не было запущено. Есть ли какой-либо выход, с помощью которого мы можем выполнить несколько действий в случае сбоя запуска приложения springboot

Ответ №1:

Приложение Spring сильно использует контекст пула потоков при запуске программы, поэтому при сбое основной программы spring не может управлять стандартными компонентами, связанными с spring. вы можете запустить новый поток только с помощью implements, выполняемых в основном классе, и без доступа к ресурсам spring, просто простой getclassloader().getresourceasstream доступен там.

Однако вы можете написать независимый java-агент, используя -javaagent для выполнения некоторой операции с ресурсом выпуска, см. java.lang.instrument.Instrumentation;