What is the purpose of the @GetMapping annotation in Spring Boot?
The @GetMapping annotation is used to map HTTP GET requests to specific handler methods in a Spring Boot controller. It tells the app which method to run when a GET request is received at a certain URL.
Click to reveal answer
beginner
How do you specify the URL path for a GET request using @GetMapping?
You specify the URL path by passing it as a string value to @GetMapping, like @GetMapping("/hello"). This means the method handles GET requests sent to '/hello'.
Click to reveal answer
intermediate
Can @GetMapping handle query parameters? How?
Yes, @GetMapping can handle query parameters by using method parameters annotated with @RequestParam. For example, @GetMapping("/search") with a method parameter @RequestParam String keyword will capture '?keyword=value' from the URL.
Click to reveal answer
intermediate
What is the difference between @GetMapping and @RequestMapping(method = RequestMethod.GET)?
@GetMapping is a shortcut annotation specifically for GET requests. @RequestMapping(method = RequestMethod.GET) does the same but is more verbose. @GetMapping improves code readability.
Click to reveal answer
beginner
Show a simple example of a Spring Boot controller method using @GetMapping.
Example:
@RestController
public class HelloController {
@GetMapping("/hello")
public String sayHello() {
return "Hello, world!";
}
}
This method returns 'Hello, world!' when a GET request is made to '/hello'.
Click to reveal answer
What HTTP method does @GetMapping handle?
AGET
BPOST
CPUT
DDELETE
✗ Incorrect
@GetMapping is designed to handle HTTP GET requests only.
How do you specify the URL path in @GetMapping?
AAs a method parameter
BAs a string value inside parentheses, e.g., @GetMapping("/path")
CUsing @RequestParam
DUsing @PathVariable
✗ Incorrect
The URL path is given as a string inside @GetMapping parentheses.
Which annotation is used to extract query parameters in a @GetMapping method?
A@PathVariable
B@RequestBody
C@RequestParam
D@ResponseBody
✗ Incorrect
@RequestParam extracts query parameters from the URL.
What is the main advantage of @GetMapping over @RequestMapping(method = RequestMethod.GET)?
AIt is shorter and clearer for GET requests
BIt supports POST requests
CIt automatically handles query parameters
DIt requires no URL path
✗ Incorrect
@GetMapping is a shortcut annotation making code cleaner for GET requests.
What will the following method return when accessed via GET /hello?
@GetMapping("/hello")
public String greet() { return "Hi!"; }
AAn error
BEmpty response
Cnull
D"Hi!"
✗ Incorrect
The method returns the string "Hi!" as the response body.
Explain how @GetMapping works in a Spring Boot controller and how to use it to handle a GET request.
Think about how the app knows which method to run for a GET URL.
You got /4 concepts.
Describe the difference between @GetMapping and @RequestMapping for GET requests and why you might prefer @GetMapping.
Focus on simplicity and clarity in code.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of the @GetMapping annotation in a Spring Boot application?
easy
A. To map HTTP POST requests to specific controller methods
B. To map HTTP GET requests to specific controller methods
C. To configure database connections
D. To handle exceptions globally
Solution
Step 1: Understand HTTP methods in Spring Boot
Spring Boot uses annotations to map HTTP methods like GET, POST, etc., to controller methods.
Step 2: Identify the role of @GetMapping
@GetMapping specifically maps HTTP GET requests to the annotated method, so when a user visits a URL with a GET request, this method runs.
Final Answer:
To map HTTP GET requests to specific controller methods -> Option B
Quick Check:
@GetMapping = maps GET requests [OK]
Hint: Remember: @GetMapping is for GET requests only [OK]
Common Mistakes:
Confusing @GetMapping with @PostMapping
Thinking @GetMapping handles POST or PUT requests
Assuming it configures database or exceptions
2. Which of the following is the correct syntax to map a GET request to the URL /hello using @GetMapping in Spring Boot?
easy
A. @GetMapping(path = "/hello") public String greet() { return "Hi"; }
B. @GetMapping(/hello) public String greet() { return "Hi"; }
C. @GetMapping('/hello') public String greet() { return "Hi"; }
D. @GetMapping(path = hello) public String greet() { return "Hi"; }
Solution
Step 1: Check the correct use of @GetMapping syntax
@GetMapping requires the path to be a string, usually passed as path = "/url" or simply "/url".
Step 2: Identify correct string usage and syntax
@GetMapping(path = "/hello") public String greet() { return "Hi"; } uses @GetMapping(path = "/hello") which is correct. @GetMapping(/hello) public String greet() { return "Hi"; } misses quotes around /hello. @GetMapping('/hello') public String greet() { return "Hi"; } uses single quotes, invalid for Java string literal. @GetMapping(path = hello) public String greet() { return "Hi"; } misses quotes around hello.
Final Answer:
@GetMapping(path = "/hello") public String greet() { return "Hi"; } -> Option A
Quick Check:
Correct syntax needs quotes and path attribute [OK]
Hint: Always use quotes around URL paths in @GetMapping [OK]
Common Mistakes:
Omitting quotes around the path string
Forgetting the leading slash in URL
Using path without quotes causing syntax errors
3. Given the following Spring Boot controller method, what will be the output when a GET request is made to /welcome?
@GetMapping("/welcome")
public String welcome() {
return "Welcome to Spring Boot!";
}
medium
A. An empty response
B. HTTP 404 Not Found error
C. "Welcome to Spring Boot!"
D. HTTP 500 Internal Server Error
Solution
Step 1: Understand the method mapping and return value
The method is mapped to GET requests at "/welcome" and returns a plain string.
Step 2: Determine the response content
Since the method returns a string, Spring Boot will send "Welcome to Spring Boot!" as the response body for the GET request.
Final Answer:
"Welcome to Spring Boot!" -> Option C
Quick Check:
GET /welcome returns method's string [OK]
Hint: Returned string is sent as response body by default [OK]
Common Mistakes:
Expecting a view name instead of response text
Confusing 404 error when mapping exists
Assuming empty or error response without cause
4. Identify the error in the following Spring Boot controller method:
@GetMapping("/user/{id}")
public String getUser(@PathVariable int userId) {
return "User ID: " + userId;
}
medium
A. The @PathVariable parameter name does not match the path variable name
B. The method should return a ResponseEntity instead of String
C. The @GetMapping path should not contain curly braces
D. The method parameter should be of type String, not int
Solution
Step 1: Compare path variable name and method parameter
The path is defined as /user/{id} but the method parameter is named userId without specifying the variable name in @PathVariable.
Step 2: Understand @PathVariable name matching
By default, the parameter name must match the path variable name or be explicitly specified like @PathVariable("id") int userId.
Final Answer:
The @PathVariable parameter name does not match the path variable name -> Option A
Quick Check:
Path variable names must match or be explicitly linked [OK]
Hint: Match @PathVariable name with URL placeholder or specify explicitly [OK]
Common Mistakes:
Not matching method parameter name with path variable
Assuming type mismatch causes error here
Thinking curly braces are invalid in @GetMapping path
5. You want to create a Spring Boot controller method that handles GET requests to /product/{category}/{id} and returns a string combining both path variables. Which of the following method signatures correctly uses @GetMapping and @PathVariable annotations?
hard
A. @GetMapping("/product/{category}/{id}") public String getProduct(String category, int id) { return category + "-" + id; }
B. @GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable String cat, @PathVariable int id) { return cat + "-" + id; }
C. @GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable int category, @PathVariable String id) { return category + "-" + id; }
D. @GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable("category") String cat, @PathVariable("id") int id) { return cat + "-" + id; }
Solution
Step 1: Check @GetMapping path and method parameters
The path has two variables: {category} and {id}. The method must accept two parameters annotated with @PathVariable matching these names or explicitly linked.
Step 2: Analyze each option's parameter annotations and types
@GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable String cat, @PathVariable int id) { return cat + "-" + id; } uses parameter names that do not match path variables (cat != category), so fails without explicit names. @GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable("category") String cat, @PathVariable("id") int id) { return cat + "-" + id; } explicitly links parameter names to path variables, which is safest. @GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable int category, @PathVariable String id) { return category + "-" + id; } swaps types incorrectly. @GetMapping("/product/{category}/{id}") public String getProduct(String category, int id) { return category + "-" + id; } lacks @PathVariable annotations, so variables won't be bound.
Step 3: Choose the best correct and safe option
@GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable("category") String cat, @PathVariable("id") int id) { return cat + "-" + id; } explicitly names variables, avoiding errors if parameter names differ from path variables.
Final Answer:
@GetMapping("/product/{category}/{id}") public String getProduct(@PathVariable("category") String cat, @PathVariable("id") int id) { return cat + "-" + id; } -> Option D