Combines @Controller and @ResponseBody. It indicates that a class is a Spring MVC controller where every method returns a domain object instead of a view.
@RestController @RequestMapping("/api") public class MyController { @GetMapping("/hello") public String sayHello() { return "Hello, World!"; } }
Used to map web requests to a specific handler class or method. It can be applied at the class or method level.
@RestController @RequestMapping("/api") public class MyController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public String sayHello() { return "Hello, World!"; } }
A shortcut for @RequestMapping with method=RequestMethod.GET. Used for handling GET requests.
@RestController public class MyController { @GetMapping("/hello") public String sayHello() { return "Hello, World!"; } }
A shortcut for @RequestMapping with method=RequestMethod.POST. Used for handling POST requests.
@RestController public class MyController { @PostMapping("/create") public String create(@RequestBody String data) { return "Data created: " + data; } }
A shortcut for @RequestMapping with method=RequestMethod.PUT. Used for handling PUT requests.
@RestController public class MyController { @PutMapping("/update") public String update(@RequestBody String data) { return "Data updated: " + data; } }
A shortcut for @RequestMapping with method=RequestMethod.DELETE. Used for handling DELETE requests.
@RestController public class MyController { @DeleteMapping("/delete/{id}") public String delete(@PathVariable("id") String id) { return "Deleted ID: " + id; } }
Used to extract values from the URI and bind them to method parameters.
@RestController public class MyController { @GetMapping("/user/{id}") public String getUserById(@PathVariable("id") String id) { return "User ID: " + id; } }
Maps the body of the HTTP request to a Java object. Useful for handling JSON data.
@RestController public class MyController { @PostMapping("/create") public String createUser(@RequestBody User user) { return "User created: " + user.getName(); } } class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Used to extract query parameters from the URL.
@RestController public class MyController { @GetMapping("/greet") public String greet(@RequestParam("name") String name) { return "Hello, " + name; } }
Used to handle exceptions in a specific controller or globally.
@RestController @ControllerAdvice public class ExceptionController { @ExceptionHandler(Exception.class) public String handleException(Exception e) { return "Error: " + e.getMessage(); } }
Enables cross-origin resource sharing (CORS).
@RestController @CrossOrigin(origins = "http://example.com") public class MyController { @GetMapping("/data") public String getData() { return "Data"; } }