Sobes.tech
Назад к вопросам
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'ы.