3.注解
2020-03-19 本文已影响0人
0f701952a44b
1.@RestController =@Controller+@ResponseBody
@ResponseBody表示将返回结果使用json数据返回前端
2.@SpringBootApplication=@Configuration+@EnableAutoConfiguration+@ComponentScan
3.
@GetMapping=@RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)
@PathVariable(获取路径中的值)
@RequestParam(设置传入参数默认值,例如分页)
@RequestBody(要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
请求时需要指定http头为 content-type为application/json charset=utf-8)
@RequestHeader(获取http头信息,比如鉴权)
@RestController
public class GetRequestTestController {
Map<String,Object> map = new HashMap<String,Object>();
/**
* 测试restful协议,从路径中获取协议,测试URL:http://localhost:8080/1/12
* @param cityId
* @param userId
* @return
*/
@RequestMapping(path = "/{city_id}/{user_id}",method = RequestMethod.GET)
public Object findUser(@PathVariable("city_id")String cityId,@PathVariable("user_id")String userId) {
map.clear();
map.put("cityid", cityId);
map.put("userid", userId);
return map;
}
/**
* 测试@GetMapping(@GetMapping是@RequestMapping(method = RequestMethod.GET)的缩写),测试URL:http://localhost:8080/v1/test?city_id=1&user_id=12
* 返回结果:{"cityid":"1","userid":"12"}
* @param city_id
* @param user_id
* @return
*/
@GetMapping(value = "/v1/test")
public Object findUser2(String city_id,String user_id) {
map.clear();
map.put("cityid", city_id);
map.put("userid", user_id);
return map;
}
/**
* 测试@GetMapping、@PathVariable其中@PathVariable获取路径中的值,测试URL:http://localhost:8080/v1/test/1?city_id=1&user_id=12
* 返回结果:{"id":"1","cityid":"1","userid":"12"}
* @param id
* @param city_id
* @param user_id
* @return
*/
@GetMapping(value="/v1/test/{id}")
public Object findUser3(@PathVariable("id")String id,String city_id,String user_id) {
map.clear();
map.put("id", id);
map.put("cityid", city_id);
map.put("userid", user_id);
return map;
}
/**
* 测试@RequestParam 传入参数默认值,是否必须的参数,
* 测试URL:http://localhost:8080/v1/test2?size=2&form=22&&page=33
* http://localhost:8080/v1/test2?size=2
* http://localhost:8080/v1/test2?size=2&form=22
* http://localhost:8080/v1/test2?size=2&page=33
* @param from 传入参数,name传入参数值放入form,如果name为null默认值为0
* @param size
* @return
*/
@GetMapping(value="/v1/test2")
public Object findUser4(@RequestParam(defaultValue = "0",name = "page")int from, int size) {
map.clear();
map.put("from", from);
map.put("size", size);
return map;
}
/**
* @RequestBody: 主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。
* 在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
* http://localhost:8080/v1/test3?sex=女&name=lxh
* @param user
* @return
*/
@RequestMapping(value="/v1/test3",method = RequestMethod.POST)
public Object findUser5(@RequestBody User user) {
map.clear();
map.put("user", user);
return map;
}
/**
* 功能描述:测试获取http头信息
* http://localhost:8080/v1/test4?id=1 注意此时需要再header中添加access_token参数
* @param accesstoken
* @param id
* @return
*/
@GetMapping(value="/v1/test4")
public Object findUser6(@RequestHeader("access_token")String accesstoken,String id) {
map.clear();
map.put("access_token", accesstoken);
map.put("id", id);
return map;
}
/**
* http://localhost:8080/v1/test_request?id=123
* @param request
* @return
*/
@GetMapping("/v1/test_request")
public Object testRequest(HttpServletRequest request){
map.clear();
String id = request.getParameter("id");
map.put("id", id);
return map;
}
}