1.@Controller 注解,在對應的方法上,視圖解析器可以解析return 的jsp,html頁面,
並且跳轉到相應頁面 若返回json等內容到頁面,則需要加@ResponseBody注解
2.@RestController 注解,相當於@Controller+@ResponseBody兩個注解的結合,返回json數據不需要在方法前面加@ResponseBody注解了,
但使用@RestController這個注解,就不能返回jsp,html頁面,視圖解析器無法解析jsp,html頁面
3.@Service 對應的是業務層Bean,Service("userService")注解是告訴Spring,當Spring要創建UserServiceImpl的實例時,bean的名字必須叫做"userService",
這樣當Controller需要使用UserServiceImpl的實例時,就可以由Spring創建好的"userService",
然后注入給Controller:在Controller只需要聲明一個名字叫“userService”的變量來接收由Spring注入的"userService"即可
4.@RequestMapping 是用來處理請求地址映射的注解,可用於類或方法上。用在類上,表示類中所有的響應的方法都是以該地址作為父路徑來訪問,
用在方法上表示該方法的訪問的路徑;兩者結合起來的訪問的路徑為完整的訪問某個方法的路徑。
5.@Autowired 和@Resource
@Resource和@Autowired都是做bean的注入時使用,都可以寫在字段上,或者是setter方法上
區別是@Autowired注解是按照類型(byType)裝配依賴對象,默認情況下它要求依賴對象必須存在
@Resource默認按照名稱(byName)自動注入
6.@RequestParam
@RequestParam類似於request.getParamter("name")有三個參數。
defaultValue:表示設置默認值
required:通過boolean設置是否是必須要傳入的參數
Value:值表示接受的傳入的參數類型
7.@ResponseBody
@ResponseBody該注解將controller的方法返回對象,通過適當的HttpMessageConverter轉換為指定格式后寫入到Response對象的body數據區。
通常用來返回json數據或者是xml數據,需要注意的是在使用此注解之后不會在走視圖處理器,而是直接將數據寫入到輸入流中,他的效果等同於通過response對象輸出指定格式的 數據。
返回的數據不是html標簽的頁面,而是其他某種數據的格式時(json、xml)等使用
8.@RequestBody
@RequestBody 該注解用於讀取Request請求的body部分數據,使用系統默認配置的HttpMessageConverter進行解析,然后把相應的數據綁定到要返回的對象上。然后再把 HttpMessageConverter返回的對象數據綁定到controller中的方法參數上。
一直以為@RequestBody接收的是一個Json對象,后來發現,其實 @RequestBody接收的是一個Json對象的字符串,而不是一個Json對象。然而在ajax請求往往傳的都是Json對象,用 JSON.stringify(data)的方式就能將對象變成字符串。
同時ajax請求的時候也要指定dataType: "json",contentType:"application/json" 這樣就可以輕易的將一個對象或者List傳到Java端,使用@RequestBody即可綁定對象或者List.
9.@GetMapping 是一個組合注解,是@RequestMapping(method = RequestMethod.GET)的縮寫。該注解將HTTP Get 映射到 特定的處理方法上。
10.@PostMapping 是一個組合注解 是@RequestMapping(method = RequestMethod.POST)的縮寫 。該注解將HTTP Post 映射到 特定的處理方法上。