@RequestMapping 是Spring框架中用于映射Web请求的注解。它可以用在类级别和方法级别,用于定义控制器(Controller)类或方法如何处理特定的HTTP请求。
具体含义如下:
类级别的@RequestMapping: 当用在类上时,@RequestMapping 用于定义整个类的基本请求路径。这意味着在类中的每个处理方法的请求路径都将基于这个基本路径。
java
Copy code
@Controller
@RequestMapping("/example")
public class MyController {
// ...
}
在这个例子中,所有MyController中处理方法的请求路径都将以 "/example" 开头。
方法级别的@RequestMapping: 当用在方法上时,@RequestMapping 用于定义特定处理方法的请求路径和HTTP方法。它告诉Spring框架在接收到特定的HTTP请求时应该调用哪个处理方法。
java
Copy code
@Controller
@RequestMapping("/example")
public class MyController {
@RequestMapping("/hello")
public String sayHello() {
return "Hello, World!";
}
}
在这个例子中,sayHello 方法处理路径为 "/example/hello" 的HTTP GET请求。
支持HTTP方法、参数、请求头等配置: @RequestMapping 还可以配置处理方法应该处理的HTTP方法、请求参数、请求头等。例如:
java
Copy code
@Controller
@RequestMapping("/example")
public class MyController {
@RequestMapping(value = "/greet", method = RequestMethod.POST)
public String greetUser(@RequestParam("name") String name) {
return "Hello, " + name + "!";
}
}
在这个例子中,greetUser 方法处理路径为 "/example/greet" 的HTTP POST请求,并接收一个名为 "name" 的请求参数。
总之,@RequestMapping 注解提供了灵活的方式来定义控制器类和方法处理HTTP请求的行为,可以根据具体的需求进行配置。在较新的Spring版本中,你还可以使用更具体的注解,如 @GetMapping、@PostMapping、@PutMapping 等,来简化对常见HTTP方法的映射。