SpringBoot学习(三)@RestController 和 @Controller 分别是做什么的,有什么区别

@Controller是在我们要返回的内容是界面的时候用,例如下面,我们要返回的是demo.html这个文件,我们这个时候就应该使用@Controller

这个是我们的demo.html的内容(不要在意代码是不是规范的。)

而当我们访问http://localhost:8899/hello(这个是我配置的端口,我电脑上访问项目的地址)

我们可以看到,访问的内容就是我们demo.html

 

 @RestController是我们要返回一些Json或者文本之类的,我们可以使用这个注解,请看下图

 

这张图里面我们用到了 @RestController,在/api内,我们让他返回的是一段简单的Json,接下来我们访问下这个界面

我们可以看到,返回的是我们写到return的那段json,如果,你认为是因为返回值的原因的话,我们在来看下面一张图

我们让他的返回值也换成demo.html,在上面,我们用@Controller时,也是返回的demo.html,只不过我们是访问到了demo.html中的内容,这回我们用@RestController,我们访问下看看结果

看,我们还是访问这个路径,他在页面上显示的是demo.html,并非是我们的demo.html的文件

这就是这两个注解的区别


如果在一个类里面,我们想即有浏览页面的,又有返回内容的,我们可以用到一个名为@ResponseBody的注解,看下图

在这个使用了@Controllerd注解的类中,我们写了一个叫做body的方法,和上面那个hello的返回值一样,接下来我们访问下这个body,看下显示的内容,是demo的文件还是demo.html这个字符串

在上图内,我们可以看到,依旧是返回的demo.html这个字符串

所以如果要整个类都返回文本或者json的话,我们可以使用@RestController注解,如果我们要访问页面和查看json的话,我们可以在@Controller注解类中,在需要返回json或文本的方法上面添加@ResponseBody的注解

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章