遇到一个记一个。
1、@ResponseBody
表示该方法的返回结果直接写入到HTTP response body中,一般在异常获取数据时使用,用于构建restful的API。
在使用@RequestMapping
后,返回值通常解析为跳转路径,加上@ResponseBody
后,返回结果不会被解析为跳转路径,而是直接写入到HTTP response body中。如一步获取json数据,加上ResponseBody
后,会直接返回json数据。该注解一般同RequestMapping
一起使用。
示例代码
@RequestMapping("/test")
@ResponseBody
public String test() {
return "OK";
}
2、@Controller
@Controller
用于定义控制类,在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解类中需要配合@RequestMapping
一起使用。
3、@RestController
@RestController
用于标注控制层组件(如struts中的action),是@ResponseBody
和@Controller
的合集,直接使用@RestController
则无需配置@ResponseBody
。同样配合@RequestMapping
一起使用。
示例代码
package com.example.demo.HelloWorld;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloWorldController {
@RequestMapping("/hello")
public String index() {
return "Hello World";
}
}
4、@RequestMapping
提供路由信息,负责URL到Controller中的具体函数映射,其作用于方法。
网友评论