Spring MVC and Web Layer
August 7, 2021

M05 Q04 What is the @Controller annotation used for?

@Controller annotation is used to indicate that annotated class is a Controller from Model-View-Controller Design Pattern, and should be considered a candidate for request handling when DispatcherServlet searches for component to which work can be delegated.

@Controller annotation is a specialization of @Component annotation, this allows Spring to autodetect controllers during classpath scanning.

Controllers in Spring do not have to implement any interface or extend any base class, Spring uses annotation-based programming model with @Controller annotation being part of it. Controllers have flexible methods signatures with mapping expressed via annotations like @RequestMapping, @GetMapping, @PostMapping etc.