SpringBoot碰到的疑問或問題

1、@ResponseBody 和 @RequestBody 的區別

@ResponseBody是作用在方法上的,@ResponseBody 表示該方法的返回結果直接寫入 HTTP response body 中,一般在異步獲取數據時使用【也就是AJAX】,在使用 @RequestMapping後,返回值通常解析爲跳轉路徑,但是加上 @ResponseBody 後返回結果不會被解析爲跳轉路徑,而是直接寫入 HTTP response body 中。 比如異步獲取 json 數據,加上 @ResponseBody 後,會直接返回 json 數據。@RequestBody 將 HTTP 請求正文插入方法中,使用適合的 HttpMessageConverter 將請求體寫入某個對象。

@RequestBody是作用在形參列表上,用於將前臺發送過來固定格式的數據【xml 格式或者 json等】封裝爲對應的 JavaBean 對象,封裝時使用到的一個對象是系統默認配置的 HttpMessageConverter進行解析,然後封裝到形參上。

2、@Controller 和 @RestController的區別

使用@Controller 註解,在對應的方法上,視圖解析器可以解析return 的jsp,html頁面,並且跳轉到相應頁面;若返回json等內容到頁面,則需要加@ResponseBody註解

@RestController註解,相當於@Controller+@ResponseBody兩個註解的結合,返回json數據不需要在方法前面加@ResponseBody註解了,但使用@RestController這個註解,就不能返回jsp,html頁面,視圖解析器無法解析jsp,html頁面

3、spring boot2.0之後,上下文的配置 server.context-path改爲了server.servlet.context-path

4、@RestControllerAdvice和 @ControllerAdvice的使用

@RestControllerAdvice:如果全部異常返回格式使用json,就可以使用該註解代替@ExceptionHanlder下的@ResponseBody註解。

@ControllerAdvice:使用它時@ExceptionHandle r必須和@ResponseBody 一起結合使用。

5、updateByPrimaryKeySelective 和 updateByPrimaryKey區別

updateByPrimaryKeySelective 只更新你要修改的列內容,其他的列的數據不受影響

updateByPrimaryKey 更新所有列的內容,包括你不修改的內容,默認賦予 null 值

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