Controller Layer (Web & REST Controllers)
About
Spring Boot provides a set of annotations for defining controllers in web applications, handling HTTP requests, and configuring response behaviors. These annotations are used to build RESTful APIs or traditional MVC applications.
1. Core Controller Annotations
These annotations define the controller layer in a Spring Boot application.
@Controller
@ControllerMarks a class as a Spring MVC controller.
Used in Spring MVC applications that return HTML views.
@Controller
public class MyController {
@GetMapping("/home")
public String home() {
return "home"; // Returns a view name
}
}@RestController
@RestControllerSpecialized version of
@Controllerthat combines@Controllerand@ResponseBody.Used in RESTful APIs where the response is JSON or XML instead of HTML.
@RestController = @Controller + @ResponseBody
2. Request Mapping Annotations
These annotations map HTTP requests to controller methods.
@RequestMapping
@RequestMappingMaps an HTTP request to a method or class.
Supports various attributes like
value,method,produces,consumes.Class-level
@RequestMappingprefixes all method mappings.
Example (Class-level and Method-level Mapping):
Shortcuts for @RequestMapping
@RequestMappingSpring Boot provides specific annotations for each HTTP method:
@GetMapping
Handles HTTP GET requests
@PostMapping
Handles HTTP POST requests
@PutMapping
Handles HTTP PUT requests
@DeleteMapping
Handles HTTP DELETE requests
@PatchMapping
Handles HTTP PATCH requests
@GetMapping
@GetMappingMaps HTTP GET requests.
@PostMapping
@PostMappingMaps HTTP POST requests (used for creating resources).
@RequestBody is used to extract JSON request payload.
@PutMapping
@PutMappingMaps HTTP PUT requests (used for updating resources).
@DeleteMapping
@DeleteMappingMaps HTTP DELETE requests.
Example:
@PatchMapping
@PatchMappingMaps HTTP PATCH requests (used for partial updates).
Example:
Last updated