#spring #spring-boot
#spring #spring-boot
Вопрос:
У меня ситуация, когда мне нужно выполнить определенные задачи на случай, если мои приложения springboot не запустятся. По сути, я хочу освободить различные ресурсы. Я попытался использовать аннотацию @PreDestroy, но это не сработало, так как приложение еще не было запущено. Есть ли какой-либо выход, с помощью которого мы можем выполнить несколько действий в случае сбоя запуска приложения springboot
Ответ №1:
Приложение Spring сильно использует контекст пула потоков при запуске программы, поэтому при сбое основной программы spring не может управлять стандартными компонентами, связанными с spring. вы можете запустить новый поток только с помощью implements, выполняемых в основном классе, и без доступа к ресурсам spring, просто простой getclassloader().getresourceasstream доступен там.
Однако вы можете написать независимый java-агент, используя -javaagent для выполнения некоторой операции с ресурсом выпуска, см. java.lang.instrument.Instrumentation;