SpringBoot的常用注解@Controller、@RestController和@RequestMapping注解说明

标签:#spingboot##web开发# 时间:2018/06/01 16:12:53 作者:小木

@Controller@RestController注解

在Springboot中,控制器的注解有两类,一种是@Controller,另一种是@RestController,前者必须配合模板使用,也就是某个类如果声明为@Controller,那么它返回的是某个单独的页面,这个页面必须是一个模板文件(可以理解为一个jsp页面,但是SpringBoot官方不推荐使用jsp,推荐使用Thymeleaf等模板)。而@RestController注解则表明这个类返回的不是一个页面(模板),而是与之前SpringMVC中@ResponsoBody类似,返回的是内容。

@RequestMapping注解

@RequestMapping注解对应的是控制器下的方法上,和之前的SpringMVC中一样,不过SpringBoot中也有一些新的注解方法,如
@GetMapping @PostMapping,前者表示Get请求,后者表示Post请求,比之前在的方式简单许多。在之前SpringMVC中,如果是Get请求,写的方式如下是:

@RequestMapping(value="/index",method= RequestMethod.GET)
public ModelAndView index(){
    return new ModelAndView("index");
}

SpringBoot方法如下,注意,如果SpringBoot的控制器声明为Controller,那么返回值不一定要用ModelAndView,可以是String,那么返回的String只要是模板的路径就可以了。

@GetMapping(value="/index")
public String index(){
    return new "index";
}

当然,我们也可以把RequestMapping放到类上面,和方法一起使用。例如某个类都是在路径entity下面,那么把类加上entity,方法加上下一级路径即可,不需要重复写,例如:

@RestController
@RequestMapping("/entity")
public class HelloController {

    //这个访问的路径就是 http://localhost/entity/index,由于这个类声明为RestController,那么这个方法返回的是index这个字符,不是index这个页面,注意这一点。
    @GetMapping(value="/index")
    public String index(){
        return "index";
    }
}
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送