Spring IoC контейнер: настройка бинов, обратные вызовы при запуске и завершении работы

Интерфейс Lifecycle определяет основные методы для любого объекта, который имеет свои собственные требования жизненного цикла (например, запуск и остановка некоторого фонового процесса): Java public interface Lifecycle { void start(); void stop(); boolean isRunning(); } Kotlin interface Lifecycle { fun start() fun stop() val isRunning: Boolean } Любой объект, управляемый Spring, может реализовать интерфейс Lifecycle. Затем, когда сам ApplicationContext получает сигналы запуска и остановки (например, для сценария остановки/перезапуска во время выполнения), он связывает эти вызовы со всеми реализациями жизненного цикла, определенными в этом контексте. Это делается путем делегирования LifecycleProcessor, как показано в следующем листинге: Java public interface LifecycleProcessor extends Lifecycle { void onRefresh(); void onClose(); } Kotlin interface LifecycleProcessor : Lifecycle { fun onRefresh() fun onClose() ...