Spring MVC proporciona un modelo de programación basado en anotaciones, donde los componentes @Controller y @RestController usan anotaciones para expresar asignaciones de consultas, entradas de consultas, manejo de excepciones y más. . Los controladores anotados tienen firmas de métodos flexibles y no es necesario ampliar las clases base ni implementar interfaces específicas. El siguiente ejemplo muestra un controlador definido mediante anotaciones:

Java
@Controller
public class HelloController {
    @GetMapping("/hello")
    public String handle(Model model) {
        model.addAttribute("message", "Hello World!");
        return "index";
    }
}
Kotlin
import org.springframework.ui.set
@Controller
class HelloController {
    @GetMapping("/hello")
    fun handle(model: Model): String {
        model["message"] = "Hello World!"
        return "index"
    }
}

En el ejemplo anterior, el método toma un Model y devuelve el nombre de la vista como String, pero hay muchas otras opciones que se describirán más adelante en este capítulo.

En guías y materiales de capacitación para spring.io utiliza el modelo de programación basado en anotaciones que se describe en esta sección.