- 使用 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 上可用
我正在尝试创建一个API来从存储中删除某个ID;这是我的代码。 API Controller : @DeleteMapping("{cId}") @ResponseStatus(HttpStatus.
我正在使用 TFS SDK。我在 Visual Studio 上用 TFS 映射了一个项目。在我的代码中,我检查了服务器路径和本地路径是否已经映射?它们的值为 true,但当我尝试删除映射路径时,wo
在本文中,我们将讨论 Spring 4.3。引入了 @RequestMapping 的特定于 HTTP 方法的快捷方式变体。 Spring RequestMapping 新的 Shortcut Ann
我有一个简单的网络应用程序,显示带有添加和删除按钮的学生列表,如下所示: index.html - 表格 Delete IndexController
我正在使用 Spring boot 1.4.0,考虑以下 @RestController 中的代码,我期望的是,服务器端将收到一个带有 form_urlencoded 内容类型的 http 正文,但不
我是一名优秀的程序员,十分优秀!