Sobes.tech
Назад к вопросам
Senior
3

Будет ли работать @RequestMapping если класс помечен только @Component?

Компании, где спрашивали
kode.ru

Ответ от нейросети

sobes.tech AI

Аннотация @RequestMapping в Spring MVC предназначена для обработки HTTP-запросов и обычно используется вместе с аннотациями, которые регистрируют класс как контроллер, например, @Controller или @RestController.

Если класс помечен только @Component, то Spring зарегистрирует его как обычный компонент, но не как контроллер, и @RequestMapping не будет работать — запросы не будут маршрутизироваться к методам этого класса.

Для того чтобы @RequestMapping работал, класс должен быть распознан Spring как контроллер, то есть иметь аннотацию @Controller или @RestController.

Пример:

@Component // этого недостаточно
@RequestMapping("/api")
public class MyController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello";
    }
}

// Правильно:
@RestController
@RequestMapping("/api")
public class MyController {
    @RequestMapping("/hello")
    public String hello() {
        return "Hello";
    }
}

Таким образом, без @Controller или @RestController @RequestMapping не будет работать.