spring boot(3)-Rest风格接口

 

 

Rest接口 

 

虽然现在还有很多人在用jsp,但是其实这种动态页面早已过时,现在前端流行的是静态HTML+ rest接口(json格式)。当然,如果是单台服务器,用动态还是静态页面可能没什么很大区别,但是如果服务器用到了集群、负载均衡、CDN等技术,用动态页面还是静态页面差别非常大,这不是一两句能解释清楚的,也不是本篇讨论的内容。只是建议尽量使用HTML+ rest来做WEB,本博客也主要讲解这方面的用法,而不会讲关于jsp之类的动态用法

传统rest用法 

用spring mvc可以很容易的实现json格式的rest接口,这是比较传统的用法,在spring boot中已经自动配置了jackson

 

//注册一个spring控制层bean
@Controller
public class HelloController {
	//配置方法的post请求url
	@RequestMapping(value= "/url",method=RequestMethod.POST)
	//将这个方法的返回值转换成特定格式,默认是json
	@ResponseBody
	//user用来接收前端请求的相关传参,比如form表单中的参数
	public String hello(User user){
		return "hello world";   //这个返回值就是前端ajax请求rest的返回值 
	}
}	

 

新的rest用法

在较新的spring版本中,出了几个新的注解,简化了上面的用法,如下
//@Controller+@ResponseBody组合,相当于在每个方法都加上@ResponseBody。
@RestController
public class HelloController {
	//直接指定Post请求,同样也有@GetMapping
	@PostMapping("/url")
	//@RequestBody是指请求来的参数是json格式,以json格式来转换到uer,现在用json传参已经用的越来越多
	public String hello(@RequestBody User user){
		return "hello world";
	}
}	

 

前端ajax请求rest

 

JS请求AJAX我就不说的,不同的JS框架有不同的用法。如果要请求上面的rest接口,只需要在请求时指定url为http://localhost:8080/url,请求方法为post,传入相应的参数,上面的方法就会向AJAX请求返回一个字符串"hello world",返回值 也可以是一个java复合类型,@ResponseBody注解会自动将其转换成json格式。

posted @ 2017-05-06 16:34  free_java  阅读(1007)  评论(0编辑  收藏  举报