Назад к вопросам
Senior
4
Что такое Bean и BeanDefinition в Spring?
Компании, где спрашивали
SSP Soft
Ответ от нейросети
sobes.tech AI
В Spring Bean — это объект, управляемый контейнером Spring. Контейнер создаёт, настраивает и управляет жизненным циклом этих объектов.
BeanDefinition — это метаинформация о Bean, которую контейнер использует для создания и настройки Bean. Она содержит:
- Класс Bean
- Скоп (singleton, prototype и др.)
- Конструкторы и аргументы
- Свойства для инъекции
- Методы инициализации и уничтожения
Проще говоря, BeanDefinition — это описание, как создать и настроить Bean, а Bean — это уже созданный объект.
Пример: если у вас есть класс
public class UserService {
private UserRepository repo;
public UserService(UserRepository repo) {
this.repo = repo;
}
}
то BeanDefinition будет содержать информацию о классе UserService, его конструкторе и зависимости UserRepository, а Bean — это экземпляр UserService, созданный контейнером.
Контейнер Spring читает BeanDefinition из конфигурации (XML, аннотации, JavaConfig) и на их основе создаёт Bean'ы.