Назад к вопросам
Middle
10
Расскажи про жизненный цикл бина в Spring.
Компании, где спрашивали
Лоция
Ответ от нейросети
sobes.tech AI
Жизненный цикл бина в Spring начинается с создания экземпляра класса, который управляется контейнером Spring. Основные этапы:
- Создание бина — контейнер создает объект, используя конструктор.
- Внедрение зависимостей — Spring внедряет необходимые зависимости (через конструктор, сеттеры или поля).
- Обработка интерфейсов BeanNameAware, BeanFactoryAware и др. — если бин реализует эти интерфейсы, Spring вызывает соответствующие методы для передачи контекста.
- Вызов методов @PostConstruct или init-method — после установки всех свойств вызываются методы инициализации.
- Использование бина — бин готов к работе и используется в приложении.
- Завершение работы — при завершении работы контейнера вызываются методы @PreDestroy или destroy-method для очистки ресурсов.
Пример с использованием аннотаций:
@Component
public class MyBean {
@PostConstruct
public void init() {
System.out.println("Инициализация бина");
}
@PreDestroy
public void cleanup() {
System.out.println("Очистка перед уничтожением");
}
}
Таким образом, Spring управляет полным циклом жизни бина, обеспечивая создание, инициализацию, использование и уничтожение.