Junior — Middle
140
È possibile spiegare le differenze tra le annotazioni @Controller e @Component in Spring, e qual è il loro scopo?
Risposta dell'AI
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";
}
}