Назад к вопросам
СБЕР Корпус
Junior — Middle
66
Чем отличается аннотация @Component от создания бина в Spring?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Аннотация @Component в Spring используется для автоматического обнаружения и регистрации класса как Spring-бина при сканировании компонентов (component scanning). Это декларативный способ указать, что класс должен быть управляемым Spring-контейнером.
Создание бина в Spring можно делать и явно, например, через метод с аннотацией @Bean в классе конфигурации. Такой способ более явный и даёт полный контроль над созданием и конфигурацией бина.
Основные отличия:
@Component— автоматическое создание бина при сканировании, удобно для простых случаев.@Bean— явное создание бина в конфигурационном классе, подходит для сложной логики создания или внешних классов.
Пример с @Component:
@Component
public class MyService {
// ...
}
Пример с @Bean:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyService();
}
}