Sobes.tech
Back to questions
Senior
5

Расскажи жизненный цикл бина в Spring.

Companies where asked
СБК ПАРУС

Answer from AI

sobes.tech AI

Жизненный цикл бина в Spring включает несколько этапов:

  1. Создание экземпляра — Spring создает объект бина, обычно через конструктор.
  2. Внедрение зависимостей — Spring внедряет необходимые зависимости (через конструктор, сеттеры или поля).
  3. Обработка интерфейсами BeanNameAware, BeanFactoryAware и т.п. — если бин реализует эти интерфейсы, Spring вызывает соответствующие методы, передавая контекст.
  4. Вызов методов @PostConstruct или afterPropertiesSet() — инициализация бина после установки всех свойств.
  5. Использование бина — бин готов к работе и может использоваться в приложении.
  6. Уничтожение бина — при завершении работы контекста Spring вызывает методы с аннотацией @PreDestroy или destroy() из интерфейса DisposableBean.

Пример с использованием аннотаций:

@Component
public class MyBean {

    @PostConstruct
    public void init() {
        // инициализация после создания и внедрения зависимостей
    }

    @PreDestroy
    public void cleanup() {
        // очистка ресурсов перед уничтожением
    }
}

Таким образом, Spring управляет жизненным циклом бина, обеспечивая создание, инициализацию, использование и корректное уничтожение.