Sobes.tech
Back to questions
Middle
9

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

Companies where asked
Лоция

Answer from AI

sobes.tech AI

Жизненный цикл бина в Spring начинается с создания экземпляра класса, который управляется контейнером Spring. Основные этапы:

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

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

@Component
public class MyBean {

    @PostConstruct
    public void init() {
        System.out.println("Инициализация бина");
    }

    @PreDestroy
    public void cleanup() {
        System.out.println("Очистка перед уничтожением");
    }
}

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