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的註解

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