New @RequestMapping Annotations in Spring 4.3

New @RequestMapping Annotations in Spring 4.3
New @RequestMapping Annotations in Spring 4.3
Some new improvements to Spring Boot and the Spring Framework lead to better readability and some use of annotations, particularly with HTTP method requests.

Earlier in Spring/Spring Boot, to Map a GET or POST or DELETE or any HTTP method request handler, we would write something like below:

@RestController @RequestMapping("/api/books") public class BookAPIController { @RequestMapping public ResponseEntity getBooks(){ } @RequestMapping("/{book_id}") public ResponseEntity getBook(@PathVariable("book_id") String bookId){ } @RequestMapping(method = RequestMethod.POST) public ResponseEntity addNewBook(@RequestBody Map requestBody){ } @RequestMapping(method = RequestMethod.POST, value="/{book_id}") public ResponseEntity editBook(@PathVariable("book_id") String bookId){ } @RequestMapping(method = RequestMethod.DELETE, value="/{book_id}") public ResponseEntity deleteBook(@PathVariable("book_id") String bookId){ } }

But with Spring Framework 4.3 and Spring Boot 1.4 (which now uses Spring Framework 4.3), we have some new annotations to map the HTTP methods to request handlers for the following HTTP methods: GET, POST, PUT, PATCH, DELETE. These new annotations are namely: @GetMapping, @PostMapping, @PutMapping, @PatchMapping, @DeleteMapping. So the above code now looks like:

@RestController @RequestMapping("/api/books") public class BookAPIController { @GetMapping public ResponseEntity getBooks(){} @GetMapping("/{book_id}") public ResponseEntity getBook( @PathVariable("book_id") String bookId ){} @PostMapping public ResponseEntity addNewBook( @RequestBody Map requestBody ){} @PostMapping("/{book_id}") public ResponseEntity editBook( @PathVariable("book_id") String bookId ){} @DeleteMapping("/{book_id}") public ResponseEntity deleteBook( @PathVariable("book_id") String bookId ){} }

These new annotations aid in improving the code readability and also reducing the annotation text to some extent.