java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Springboot请求和响应

Springboot请求和响应相关注解及使用场景分析

作者:辞暮尔尔-烟火年年

本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam、@PathVariable等请求处理注解,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在Spring Boot中,请求和响应相关的注解主要用于处理HTTP请求和构建HTTP响应。以下是常用的请求和响应相关注解的详细介绍,包括使用场景和示例。

1. 请求处理注解

@RequestMapping

@RestController
@RequestMapping("/api")
public class MyController {
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String sayHello() {
        return "Hello, World!";
    }
}

@GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping

@RestController
@RequestMapping("/api")
public class MyController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
    @PostMapping("/create")
    public String createItem(@RequestBody Item item) {
        return "Item created";
    }
}

@RequestParam

@GetMapping("/greet")
public String greet(@RequestParam(name = "name", defaultValue = "World") String name) {
    return "Hello, " + name;
}

@PathVariable

@GetMapping("/items/{id}")
public Item getItem(@PathVariable("id") Long id) {
    // Logic to fetch item by id
    return item;
}

@RequestBody

@PostMapping("/items")
public Item createItem(@RequestBody Item item) {
    // Logic to create item
    return item;
}

@RequestHeader

@GetMapping("/user-agent")
public String getUserAgent(@RequestHeader("User-Agent") String userAgent) {
    return "User-Agent: " + userAgent;
}

2. 响应处理注解

@ResponseBody

@GetMapping("/items/{id}")
@ResponseBody
public Item getItem(@PathVariable("id") Long id) {
    // Logic to fetch item by id
    return item;
}

@RestController

@RestController
@RequestMapping("/api")
public class MyController {
    @GetMapping("/items/{id}")
    public Item getItem(@PathVariable("id") Long id) {
        return item;
    }
}

@ResponseStatus

@PostMapping("/items")
@ResponseStatus(HttpStatus.CREATED)
public Item createItem(@RequestBody Item item) {
    return item;
}

3. 异常处理注解

@ExceptionHandler

@RestController
@RequestMapping("/api")
public class MyController {
    @GetMapping("/items/{id}")
    public Item getItem(@PathVariable("id") Long id) {
        if (id == null) {
            throw new ItemNotFoundException("Item not found");
        }
        return item;
    }
    @ExceptionHandler(ItemNotFoundException.class)
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public String handleItemNotFoundException(ItemNotFoundException ex) {
        return ex.getMessage();
    }
}

4. CORS支持

@CrossOrigin

@RestController
@RequestMapping("/api")
@CrossOrigin(origins = "http://example.com")
public class MyController {
    @GetMapping("/items/{id}")
    public Item getItem(@PathVariable("id") Long id) {
        return item;
    }
}

5. 其他相关注解

@RequestAttribute

@GetMapping("/attributes")
public String getAttribute(@RequestAttribute("myAttribute") String myAttribute) {
    return "Attribute: " + myAttribute;
}

@Valid

@PostMapping("/items")
public Item createItem(@Valid @RequestBody Item item) {
    return item;
}

这些注解为Spring Boot提供了强大的请求和响应处理能力,帮助开发者轻松创建RESTful风格的API。通过合理使用这些注解,可以使代码更加清晰和易于维护。

到此这篇关于Springboot请求和响应相关注解及使用场景的文章就介绍到这了,更多相关Springboot请求和响应内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文