springboot 返回值
时间: 2023-08-15 15:12:06 浏览: 101
包装SpringBoot Controller返回值
5星 · 资源好评率100%
Spring Boot的控制器方法可以使用不同的返回值类型。以下是一些常见的返回值类型:
1. 字符串:可以直接返回一个字符串,它将作为响应的主体内容返回给客户端。
```java
@GetMapping("/hello")
public String hello() {
return "Hello, World!";
}
```
2. 对象:可以返回一个Java对象,Spring Boot将自动将其转换为JSON格式返回给客户端。
```java
@GetMapping("/user/{id}")
public User getUser(@PathVariable Long id) {
User user = userService.getUserById(id);
return user;
}
```
3. ResponseEntity:可以使用ResponseEntity类来自定义响应的状态码、头部信息和主体内容。
```java
@GetMapping("/user/{id}")
public ResponseEntity<User> getUser(@PathVariable Long id) {
User user = userService.getUserById(id);
if (user != null) {
return ResponseEntity.ok(user);
} else {
return ResponseEntity.notFound().build();
}
}
```
4. ModelAndView:可以返回一个ModelAndView对象,用于控制视图的渲染和模型数据的传递。
```java
@GetMapping("/home")
public ModelAndView home() {
ModelAndView modelAndView = new ModelAndView("home");
modelAndView.addObject("message", "Welcome to my website!");
return modelAndView;
}
```
5. 其他类型:还可以返回其他类型,如InputStream、File等,用于直接返回文件或流给客户端。
```java
@GetMapping("/file")
public ResponseEntity<Resource> getFile() throws IOException {
Resource file = fileService.getFile();
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + file.getFilename() + "\"")
.body(file);
}
```
这只是一些常见的返回值类型,实际上还有很多其他的返回值类型可以使用。根据实际需求选择合适的返回值类型即可。
阅读全文