一 @RestController
1. @RestControler 是针对http的常用注解,在Spring中@RestController的作用等同于 @Controller + @ResponseBody。可以理解为@RestControler = @Controler + @ResponseBody。
@Controler 将当前修饰的类注入SpringIOC容器,使得从该类所在的项目跑起来的过程 中,这个类就被实例化。语义化用处:声明该类是一个Controler控制器。
@ Responsebody 简短来说 就是类中所有的API接口返回的数据,无论对方的方法中返 回的是Map或者是其他形式的Object,它会以Json字符串的形式返回给客户端,本人 尝试了一下,如果返回的是string 类型,则仍然是String。
@RestController
@RequestMapping("test")
public class SampleController {
@GetMapping
public Map testGet() {
return new HashMap<String, String>(){{
put("name", "springboot");
}};
}
@GetMapping(path = "str")
public String testGetStr() {
return "OK";
}
}
这部分代码对于Map返回则是JSON String,对于String则仍然是String
当将@RestController换成@Controller之后,对于/test的返回值如下图:
从报错可以看见,当@Controller修饰的时候,Spring以为会返回一个View(也就是MVC中的那C)但是返回的东西却是一个Map。
二 @Controller 注解
在一个类上添加Controler注解,表明这个类是一个控制器类,但是,单独的@Controller注解无法让一个类成为处理请求的处理器。
。。。。。。。。。。。。。。。