@controller 和@RestController

由于前端控制器对浏览器已经进行了统一处理,但是具体的HTTP请求需要对应具体的方法控制,因此需要创建处理具体请求的类,也就是控制器,使用controller注释进行标识,标识交给spring进行处理,这样前台的请求才能提交给具体的类,springMVC才能识别控制器的存在。但是只标识为控制器还不行,还要扫描具体的路径找到方法。

 @Controller:标识一个Spring类是Spring MVC controller处理器
 @RestController:@RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。

1、如果使用@RestController注解Controller层的话,则返回的是return里面的内容,无法返回指定的页面,配置的视图解析器InternalResourceViewResolver也就自然没有作用了,只是返回index;
2、如果要返回显示特定的页面,则需要用@Controller配合视图解析器InternalResourceViewResolver,返回的是具体的页面,需要提前建立index.html;如果需要返回JSON、XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
意思就是加上ResponseBody只能返回具体的对象而不是页面。

将类标识为控制器后,即交给springboot进行管理。需要指定@RequestMapping注解进行注释,表明网页内容访问的路径,保证请求的地址是唯一的,具有唯一性。。
前台访问的时候需要通过端口访问@RequestMapping的路径。

你可能感兴趣的:(springboot,spring,java,后端)