Back to questions
СБЕР Корпус
Junior — Middle
55
Почему применение аннотации @Component для методов недопустимо в Spring?
Companies where asked
Answer from AI
sobes.tech AI
Аннотация @Component в Spring предназначена для классов и указывает, что класс является компонентом Spring и должен быть зарегистрирован как bean в контексте приложения.
Применение @Component к методам недопустимо, потому что Spring не создает bean'ы из методов, а создает их из классов. Для методов, которые создают и возвращают bean, используется аннотация @Bean, обычно внутри класса, помеченного @Configuration.
Таким образом:
@Component— для классов, чтобы Spring автоматически их обнаружил и зарегистрировал.@Bean— для методов, которые возвращают объекты, которые нужно зарегистрировать как bean'ы.
Пример правильного использования:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}