Назад к вопросам
Junior — Middle
66
Можно ли объяснить различия между аннотациями @Controller и @Component в Spring, и в чем их назначение?
Ответ от нейросети
sobes.tech AI
В 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";
}
}