@Controller 是SpringMVC和SpringBoot常用注解之一,其作用是:
@Controller注解标注类的方法,return时会被视图处理器识别成静态文件的路径。默认为templates文件夹下。如return "test/hello"表示的是默认路径下的test文件夹中的名叫hello的文件,带上后缀名.html或btl等也可以识别。
首先注意,@Controller是标注类的,别标注到其他地方了。如果返回的是一个字符串,他会去通过找路径,然后渲染html的界面。
@RequestMapping
它可以注解类也可以注解方法,注解类时标注请求的路径,标注方法时表示将特定的URL映射到指定的方法。@RequestMapping中有多个属性来进一步匹配HTTP请求到方法:value,method,consumes
@ResponseBody
@ResponseBody可以标注方法也可以标注类,当标注方法时表示该方法的返回值会被解析成json(字符串会不会被转换),直接写入HTTP Response Body中,视图处理器将不会将return的参数识别成路径。当它标注类时,类中所有方法的返回值都将直接返回值到页面,相当于给所有的类都加上@ResponseBody注解。
@RestController
@RestController是@Controller和@ResponseBody的结合体,只能注解类,return返回的值将被转换成json,字符串除外,直接写入HTTP相应体返回到页面中。
@RestController注解Controller,则Controller中的方法无法返回jsp,html页面
参考:https://blog.youkuaiyun.com/weixin_43184769/article/details/83383341