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 值