@GetMapping Spring Boot Example

Spring @GetMapping example shows how to use @GetMapping annotation to map HTTP GET requests onto specific handler methods.

What is @GetMapping?

@GetMapping is a specialized version of the @RequestMapping annotation in Spring MVC. It is specifically tailored for HTTP GET requests. By using this annotation, you tell Spring that a particular method should respond to GET requests at a specified URL.
@GetMapping - shortcut for @RequestMapping(method = RequestMethod.GET)

Why Use @GetMapping?

Readability: @GetMapping is concise and clearly indicates the HTTP method being used. There's no ambiguity about the type of request it handles.

Convenience: Instead of specifying the method attribute in @RequestMapping, like @RequestMapping(value="/path", method=RequestMethod.GET), with @GetMapping, it's much cleaner: @GetMapping("/path").

Alignment with Other HTTP Methods: Spring also provides other annotations like @PostMapping, @PutMapping, @DeleteMapping, etc., making your controller methods more expressive and consistent.

@GetMapping Example

Let's build a simple Spring Boot application that uses the @GetMapping annotation. 

Setting Up the Project 

Start by creating a new Spring Boot project using the Spring Initializer or your favorite IDE. 

The Model 

Imagine we're creating an API for a library. We'll have a simple Book class.
public class Book { private Long id; private String title; private String author; // Constructors, getters, setters, etc. }

The Controller 

Now, let's create a BookController that will handle the incoming HTTP GET requests.
@RestController @RequestMapping("/api/books") public class BookController { // For the sake of simplicity, let's use a static list private static List<Book> books = Arrays.asList( new Book(1L, "Spring Boot Guide", "John Doe"), new Book(2L, "Learning Spring", "Jane Smith") ); @GetMapping public List<Book> getAllBooks() { return books; } @GetMapping("/{id}") public Book getBookById(@PathVariable Long id) { return books.stream().filter(book -> book.getId().equals(id)).findFirst().orElse(null); } }
In this controller: 
  • @GetMapping without any value returns a list of all books. 
  • @GetMapping("/{id}") returns a book with a specific ID.

Running the Application 

After setting up the application and running it, when you make a GET request to /api/books, you'll get a list of all books. 

Similarly, a GET request to /api/books/1 will return the book with the ID of 1. 

Conclusion 

@GetMapping simplifies the way we handle HTTP GET requests in Spring, making our code more readable and maintainable. If you're developing RESTful services with Spring Boot, embracing @GetMapping and its siblings is a step in the right direction!

Comments