Spring Boot是很优秀的框架,它的出现简化了新Spring应用的初始搭建以及开发过程,大大减少了代码量,目前已被大多数企业认可和使用。这个专栏将对Spring Boot框架从浅入深,从实战到进阶,不但我们要懂得如何去使用,还要去剖析框架源码,学习其优秀的设计思想。汇总目录链接:【Spring Boot实战与进阶】学习目录
注解 | 释义 |
---|---|
@Controller | 处理http请求 |
@RestController | 返回json,相当于@Controller+@ResponseBody |
@RequestMapping | 配置URL映射 |
@GetMapping | 组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写 |
@PostMapping | 组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写 |
@PathVariable | 获取URL中的数据 |
@RequestParam | 获取请求参数的值 |
示例一:返回Json字符串或者跳转到页面
取决于是否有@ResponseBody,示例使用的类都用注解@RestController,因此包含@ResponseBody,故返回Json字符串。
@RequestMapping(value="/demo/java")
public String java() {
return "java";
}
示例二:不传参
@RequestMapping(value="/demo/json")
public Map<String, Object> json() {
Map<String, Object> map = new HashMap<>();
map.put("sex", "男");
map.put("name", Arrays.asList("tom","bob","tony"));
return map;
}
示例三:传参
@RequestMapping(value="/demo/getId")
public Map<String, Object> getId(Integer id) {
Map<String, Object> map = new HashMap<>();
map.put("id", id);
return map;
}
示例四:参数设置
name:请求传递的字段,映射到方法参数。
required:必输设置,默认true。
defaultValue:默认值
@RequestMapping(value="/demo/login")
public Map<String, Object> login(
@RequestParam(name = "user", required = false, defaultValue = "admin") String account,
@RequestParam(name = "pass", required = false, defaultValue = "123456") String password) {
Map<String, Object> map = new HashMap<>();
map.put("account", account);
map.put("password", password);
return map;
}
示例五:传递对象
@RequestMapping(value="/demo/bean")
public Map<String, Object> bean(User user) {
Map<String, Object> map = new HashMap<>();
map.put("account", user.getAccount());
map.put("password", user.getPassword());
return map;
}
示例六:把参数作为URL地址的一部分
@GetMapping("/user/{id}")
public void getUser(@PathVariable int id) {
System.out.println("查询到了id="+id);
}
发送请求:http://localhost:8080/user/1
控制台输出:
查询到了id=1
示例七:Model数据模型
SpringMVC在内部使用了一个Model接口存储数据模型,它的功能类似java.util.Map,但是比Map容易使用。
@PostMapping("/user")
public void saveUser(User user, Model model) {
System.out.println(model);
System.out.println("添加用户信息 user:"+ user);
}
发送请求:http://localhost:8080/user?account=yunfan&password=123456
控制台输出:
{user=User{account='yunfan', password='123456'}, org.springframework.validation.BindingResult.user=org.springframework.validation.BeanPropertyBindingResult: 0 errors}
添加用户信息 user:User{account='yunfan', password='123456'}
示例八:Json请求
@PostMapping("/updUser")
public void updateUser(@RequestBody User user) {
System.out.println("修改用户信息"+user);
}
发送请求:http://localhost:8080/updUser
使用post工具发送Json请求,先设置下Headers参数。
控制台输出:
修改用户信息User{account='yunfan', password='123456'}