@GetMapping Spring boot

This article will cover @GetMapping annotation in spring boot with example.

@GetMapping annotation was introduced in Spring 4.3. It is applied over controller methods that handle HTTP GET requests.
[the_ad id=”651″]

Prior to 4.3, @RequestMapping along with method attribute as RequestMethod.GET was used to configure GET request handler method as shown below

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// before Spring 4.3
@RequestMapping(value="/users",method = RequestMethod.GET)
public List<User> getUsers() {
}
// before Spring 4.3 @RequestMapping(value="/users",method = RequestMethod.GET) public List<User> getUsers() { }
// before Spring 4.3
@RequestMapping(value="/users",method = RequestMethod.GET)
public List<User> getUsers() {
}

With @GetMapping, above method can be replaced as

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@GetMapping("/users")
public List<User> getUsers() {
}
@GetMapping("/users") public List<User> getUsers() { }
@GetMapping("/users")
public List<User> getUsers() {
}

@GetMapping is followed by the string which signifies the URL for which this method will be exposed.
So, @GetMapping is a shorthand annotation for @RequestMapping.

Spring docs state,

@GetMapping is a composed annotation that acts as a shortcut for @RequestMapping(method = RequestMethod.GET).

Enabling @GetMapping
@GetMapping is added in spring 4.3. So, in order to use it you need to have below dependency as per the build tool

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// MAVEN
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>6.0.11</version>
</dependency>
// GRADLE
implementation 'org.springframework:spring-webmvc:6.0.11'
// MAVEN <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>6.0.11</version> </dependency> // GRADLE implementation 'org.springframework:spring-webmvc:6.0.11'
// MAVEN
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>6.0.11</version>
</dependency>

// GRADLE
implementation 'org.springframework:spring-webmvc:6.0.11'

or if you are using Spring boot, then add below dependency

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
// MAVEN
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.1.2</version>
</dependency>
// GRADLE
implementation 'org.springframework.boot:spring-boot-starter-web:3.1.2'
// MAVEN <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>3.1.2</version> </dependency> // GRADLE implementation 'org.springframework.boot:spring-boot-starter-web:3.1.2'
// MAVEN
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>3.1.2</version>
</dependency>


// GRADLE
implementation 'org.springframework.boot:spring-boot-starter-web:3.1.2'

@GetMapping annotation example
Suppose you have a web application that accepts HTTP requests. You want to expose a URL that returns a list of all users.
Since the method returns something, it will be an HTTP GET request handler method.
It will be declared as

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@GetMapping("users")
public List<User> getUsers() {
// return list of users
}
@GetMapping("users") public List<User> getUsers() { // return list of users }
@GetMapping("users")
public List<User> getUsers() {
  // return list of users
}

Now, suppose there is another method that returns details of a user based on an id and this id is received from the URL.
Request handler method will be annotated with @GetMapping as shown below

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
@GetMapping("users/{id}")
public User getUser(@PathVariable Integer id) {
// return detail of user
}
@GetMapping("users/{id}") public User getUser(@PathVariable Integer id) { // return detail of user }
@GetMapping("users/{id}") 
public User getUser(@PathVariable Integer id) { 
  // return detail of user
}

This method will be invoked when the URL being accessed is of the format user/1.
Note that the method parameter that receives the id, is annotated with @PathVariable annotation and {id} after the URL in @GetMapping denotes that this value will be received from the URL.
So, in this case the method parameter id will automatically be populated with 1.
[the_ad id=”656″] Hope the article was useful.

Categorized in:

Spring Annotations,