Каким образом Spring автоматически регистрирует компонент, используя аннотацию @Bean и название класса?

В Spring аннотация @Bean используется внутри класса, помеченного как конфигурационный (@Configuration), для определения метода, который возвращает объект, управляемый Spring-контейнером как bean.

Короткий ответ

Что ответить на собеседовании

В Spring аннотация @Bean используется внутри класса, помеченного как конфигурационный (@Configuration), для определения метода, который возвращает объект, управляемый Spring-контейнером как bean. При запуске приложения Spring сканирует такие методы и регистрирует возвращаемые ими объекты в контексте.

Подробный разбор

Ответ с пояснениями

В Spring аннотация @Bean используется внутри класса, помеченного как конфигурационный (@Configuration), для определения метода, который возвращает объект, управляемый Spring-контейнером как bean. При запуске приложения Spring сканирует такие методы и регистрирует возвращаемые ими объекты в контексте.

Название bean по умолчанию совпадает с именем метода, помеченного @Bean. Если имя не указано явно, Spring использует имя метода как идентификатор компонента.

Пример:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

Здесь Spring создаст bean с именем "myService" типа MyServiceImpl.

Таким образом, автоматическая регистрация происходит через сканирование конфигурационных классов и регистрацию объектов, возвращаемых методами с @Bean, где имя bean совпадает с именем метода.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее