Встречается на собеседованиях • сегодня

В чем разница между @Controller и @Component

@Controller — это специализированная версия @Component, предназначенная для веб-слоя в Spring MVC. Она обрабатывает HTTP-запросы и возвращает представления (View) или данные (REST).

@Component — общая аннотация для любых Spring-бинов без специфической семантики.

Пример:

java
@Controller  
public class MyController {  
    @GetMapping("/hello")  
    public String sayHello() {  
        return "hello-page"; // Возвращает имя представления  
    }  
}  

@Component  
public class MyService {  
    public void doWork() {  
        // Логика сервиса  
    }  
}  

Ключевые отличия:

  1. @Controller поддерживает аннотации MVC (@GetMapping, @PostMapping).
  2. @Component — универсальный бин, @Controller — специализированный.
  3. @Controller автоматически детектируется как часть @ComponentScan для веб-слоя.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы