SpringBoot 中的@Controller 和@RestController 注解的区别

今天在使用springboot初始化一个项目的时候,发现controller层的方法无法访问,网页总是404

@Controller
public class HelloController {

    @RequestMapping(path = {"/hello"})
    //@ResponseBody
    public String hello(){
        return "hello world fuzhihang";
    }
}

经过检查代码和上网查找发现了一个问题,我所使用的注解是@Controller,

这样一来会默认调用视图解析器去找相应的页面去了,显然我返回的这个页面是不存在的,所以会返回404

将@controller改成@RestController 即可,@RestController相当于将@ResponseBody + @Controller合在一起的作用

在@RequestMapping下面再加个@ResponseBody注解,
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,

写入到response对象的body区,而不是调用视图解析器,通常用来返回JSON数据或者是XML

猜你喜欢

转载自www.cnblogs.com/douzihedouyacai/p/12389004.html
今日推荐