1
spring boot | @RestController
source link: https://benpaodewoniu.github.io/2022/11/17/spring15/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
spring boot | @RestController
开发 RESTful API
时,一般都会在 Controller
上加上 @Controller
注解,但是有时候加上@RestController
。
@RestController
注解等价于@ResponseBody + @Controller
。
@RestController
和 @Controller
的共同点是都用来表示Spring
某个类是否可以接收HTTP
请求,二者区别:
@RestController
无法返回指定页面,而@Controller
可以- 对于
Controller
, 如果只是使用@RestController
注解,则其方法无法返回指定页面,此时配置的视图解析器InternalResourceViewResolver
不起作用,返回的内容就是return
里的内容。 如果需要返回到指定页面,则需要用@Controller
配合视图解析器InternalResourceViewResolver
才行。
- 对于
- 前者可以直接返回数据,后者需要
@ResponseBody
辅助。- 如果需要返回
JSON
,XML
或自定义mediaType
内容到页面,@RestController
自己就可以搞定,这个注解对于返回数据比较方便,因为它会自动将对象实体转换为JSON
格式。而@Controller
需要在对应的方法加上@ResponseBody
注解。
- 如果需要返回
RestController
import java.util.HashMap;
import java.util.Map;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/difference")
public class DifferenceController {
// 跳转到上传文件的页面
@RequestMapping(value = "/goToSuccessPage", method = RequestMethod.GET)
public String goToSuccessPage() {
// 跳转到 视图层 success.html失败
return "success";
}
@RequestMapping(value = "findAll", method = RequestMethod.GET)
public Map<String, String> findAll() {
Map<String, String> all = new HashMap<>();
all.put("remark", "可以返回json,xml或自定义mediaType内容到页面");
return all;
}
}
Controller
@Controller
@RequestMapping("/login")
public class LoginController {
@GetMapping(value = "/login")
public String login() {
// 跳转到 视图层 login.html
return "login";
}
@RequestMapping(value = "/getJson", method = RequestMethod.GET)
@ResponseBody
public Map<String, String> getJson() {
Map<String, String> all = new HashMap<>();
all.put("remark", "结合注解 @ResponseBody 返回接送");
return all;
}
}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK