MVC架构
MVC架构的全称为
M:model 模型 用于存储数据
V:view 视图 用于展示数据
C:controller 控制器 用于协调上述二者
我们一般发送HTTP请求都是由Controller进行拦截,然后Controller中有相应的处理逻辑。
向Model获取数据,将数据转交给View进行数据展示处理
注解@Controller和@RestController
@Controller:请求页面和数据(数据在后端时还需要使用Thymeleaf模板,使得前后端不分离)
@RestController:请求数据(前后端分离的形式,@RestController注解会将返回的对象数据转换为JSON格式)
当然,当@Controller
和@ResponseBody
联合使用时,效果形同@RestController
路由映射@RequestMapping
@RestController
public class HelloController {
// 路由映射
@RequestMapping(value="/hello")
public User hello(){
String name = "icfh";
String password = "123456";
User user = new User(name, password);
return user;
// return "Hello,SpringBoot!";
}
}
- value
value属性用于匹配URL映射,支持简单正则表达式
@RestController
public class HelloController {
// 路由映射
// 可以匹配 /hello/a.json,/hello/b.json
@RequestMapping("/hello/*.json")
public User hello(){
String name = "icfh";
String password = "123456";
User user = new User(name, password);
return user;
}
}
- Method
HTTP请求Method有GET, POST, PUT, DELETE等方法。
@RestController
public class HelloController {
// 路由映射
// 可以匹配 /hello/a.json,/hello/b.json
@RequestMapping(value="/hello/*.json",method=RequesMethod.GET)
public User hello(){
String name = "icfh";
String password = "123456";
User user = new User(name, password);
return user;
}
}
- 参数映射
如下例子,nickname => name
@RestController
public class HelloController {
@RequestMapping(value="/hello2")
public String hello2(@RequestParam("nickname") String name){
return "Hello "+ name;
}
}