Sobes.tech
Junior — Middle
147

Peut-on expliquer les différences entre les annotations @Controller et @Component dans Spring, et quelle est leur fonction?

Réponse de l'IA

sobes.tech IA

В Spring @Component — это универсальная аннотация для обозначения класса как компонента, который будет управляться контейнером Spring (IoC). Она служит для автоматического обнаружения и регистрации бинов.

@Controller — это специализированная аннотация, которая расширяет @Component и указывает, что класс предназначен для обработки HTTP-запросов в MVC-приложении. Классы с @Controller обычно содержат методы с аннотациями типа @RequestMapping для маршрутизации.

Таким образом:

  • @Component — общий стереотип для компонентов.
  • @Controller — специализированный компонент для веб-контроллеров.

Пример:

@Component
public class MyService {
    // бизнес-логика
}

@Controller
public class MyController {
    @RequestMapping("/hello")
    public String sayHello() {
        return "hello";
    }
}