- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
在本文中,我们将讨论 Spring 4.3。引入了 @RequestMapping 的特定于 HTTP 方法的快捷方式变体。 Spring RequestMapping 新的 Shortcut Annotations 是**@GetMapping**、@PostMapping、@PutMapping、@DeleteMapping、和@PatchMapping。
通常,如果我们想使用传统的 @RequestMapping 注解来实现 URL 处理程序,它会是这样的:
@RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
新方法可以将其简化为:
@GetMapping("/get/{id}")
Spring 当前支持五种类型的内置快捷方式注解,用于处理不同类型的 HTTP 请求。
从命名约定可以看出,每个注解都是为了处理各自传入的请求方法类型,即*@GetMapping用于处理GET类型的请求方法,@PostMapping用于处理POST*类型请求方法等
上述所有注解都已在内部使用 @RequestMapping 以及 method 元素中的相应值进行了注解。
例如,如果我们查看** **@PostMapping注解的源代码,我们可以看到它已经通过以下方式注解了 *RequestMethod.POST *:
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@RequestMapping(
method = {RequestMethod.POST}
)
public @interface PostMapping {
// Default Inbuilt Code
}
所有其他注解都以相同的方式创建。 @GetMapping 用 RequestMethod.GET 注解,@PutMapping 用 RequestMethod.PUT, 等注解。
注解的完整源代码可在 here 中找到。
### 执行
@ResponseBody
@GetMapping(value = "/employee/{id}")
public Employee getEmployeeById(@PathVariable Long id)
{
return employeeRepository.findById(id).get();
}
@PostMapping(value = "/employee")
public Employee createEmployee(@RequestBody Employee employee)
{
return employeeRepository.save(employee);
}
@PutMapping(value = "/employee")
public Employee updateEmployee(@RequestBody Employee employee)
{
return employeeRepository.existsById(employee.getId()) ? employeeRepository.save(employee) : null;
}
@DeleteMapping(value = "/employee/{id}")
public void deleteEmployee(@PathVariable Long id)
{
employeeRepository.deleteById(id);
}
@PatchMapping("/patch")
public @ResponseBody ResponseEntity<String> patch() {
return new ResponseEntity<String>("PATCH Response", HttpStatus.OK);
}
我们使用了必要的注解来处理正确的传入 HTTP 方法。 @GetMapping 处理“/get”请求 URI,@PostMapping 处理“/post”请求 URI。等等。
如果我们必须处理任何 URL 路径变量,我们可以简单地用更少的方式来处理,我们以前使用 @RequestMapping.
代码示例在 Github 上可用
有一个RequestMethod名为 PATCH。 要使用这个方法,我们可以定义@PatchMapping对于休息端点。据我了解,这听起来像是部分更新了 DB 对象。 通常,我们使用 POST 或 P
我是 Spring 和 REST API 本身的新手,我想在单个 Controller 中为我的实体“Employee”的多个属性创建一个 PatchMapper,但我收到此错误: “由以下原因引起:
在 Spring 中,我编写这样的代码来处理 PATCH 请求: @PatchMapping(path="/{orderId}", consumes="application/json") publi
我是一名优秀的程序员,十分优秀!