@Controller注解在類上表明這個類是Spring MVC裡的Controller将其聲明為Spring的一個BeanDispatcher Servlet會自動掃描注解了此注解的類并将Web請求映射到注解了@RequestMapping的方法上。
在聲明普通Bean的時候使用@Component、@Service、@Repository和@Controller是等同的因為@Service、@Repository、@Controller都組合了@Component注解。
但在Spring MVC聲明控制器Bean的時候隻能使用@Controller。
@RequestMapping注解是用來映射Web請求通路路徑和參數、處類和方法的。
@RequestMapping可注解在類或者方法上。注解在方法上的@RequestMapping路徑會繼承注解在類上的路徑@RequestMapping支援Servlet的request和response作為參數也支援對request和response的媒體類型進行配置。
@ResponseBody支援将傳回值放在response體内而不是傳回一個頁面。
我們在很多基于Ajax的程式的時候可以以此注解傳回資料而不是頁面此注解可以放置在傳回值前或者方法上。
@RequestBody允許request的參數在request體中而不是在直接連結的位址後面。此注解放置在參數前。
@requestBody可以将請求體中的JSON字元串綁定到相應的bean上當然也可以将其分别綁定到對應的字元串上
例如說以下情況
這種情況是将JSON字元串中的兩個變量的值分别賦予了兩個字元串但是呢假如我有一個User類擁有如下字段
String userName;
String pwd;
那麼上述參數可以改為以下形式@requestBody User user 這種形式會将JSON字元串中的值賦予user中對應的屬性上
需要注意的是JSON字元串中的key必須對應user中的屬性名否則是請求不過去的。
@PathVariable用來接收路徑參數如/new/001可接收001作為參數此注解放置在參數前。
例如
@RestController是一個組合注解組合了@Controller和@ResponseBody這就意味着當你隻開發一個和頁面互動資料的控制的時候需要使用此注解。
若沒有此注解诶要想實作上述功能則需要自己在代碼中加上@Controller和@ResponseBody兩個注解。
下面這個示例将示範這幾個注解的使用。
以及利用jackson獲得對象和json或xml之間的轉換
在實際項目中我們其實主要是支援json資料沒必要同時支援json和xml因為json比xml更加簡潔。
由于JavaScript的廣泛使用json成為最推薦的格式在這種情況下我們的依賴包如下(上面的依賴包包含下面的依賴包)
注意jackson對對象和json做轉換時一定需要空構造
轉換成json的結果
轉換成xml的結果
本篇部落格涉及到的源碼連結
歡迎轉載分享是進步的源泉。