聲明Bean的注解
-
@Component 沒有明確角色的組件。泛指組件,當(dāng)組件不好歸類的時候,我們可以使用這個注解進(jìn)行標(biāo)注。
-
@Service 在業(yè)務(wù)邏輯層(Service層)使用
-
@Repositpry 在數(shù)據(jù)訪問層(dao層)使用,標(biāo)注一個DAO組件類。這個注解修飾的DAO或者repositories類會被ComponetScan發(fā)現(xiàn)并配置,同時也不需要為它們提供XML配置項。
-
@Controller 用于標(biāo)注控制層組件。用于定義控制器類,在spring項目中由控制器負(fù)責(zé)將用戶發(fā)來的URL請求轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)接口(service層),一般這個注解在類中,通常方法需要配合注解@RequestMapping。
-
@RestController 用于標(biāo)注控制層組件(如struts中的action),@ResponseBody和@Controller的合集。
裝配bean時常用的注解
-
@Autowired:自動導(dǎo)入依賴的bean
-
@Resource(name=”name”,type=”type”):沒有括號內(nèi)內(nèi)容的話,默認(rèn)byName。與@Autowired干類似的事。
-
@PostConstruct 和 @PreDestroy 方法 實現(xiàn)初始化和銷毀bean之前進(jìn)行的操作
spring MVC模塊注解 -- web模塊常用到的注解
-
@Controller
定義控制器,它還允許自動檢測定義在類路徑下的組件(配置文件中配置掃描路徑)并自動注冊。
-
@RequestMapping
用于將url映射到整個處理類或者特定的處理請求的方法??梢灾挥猛ㄅ浞?!
@RequestMapping 既可以作用在類級別,也可以作用在方法級別。當(dāng)它定義在類級別時
-
@RequestParam
將請求的參數(shù)綁定到方法中的參數(shù)上,有required參數(shù),默認(rèn)情況下,required=true,也就是改參數(shù)必須要傳。如果改參數(shù)可以傳可不傳,可以配置required=false。
@RequestMapping("/happy")
public String sayHappy(
@RequestParam(value = "name", required = false) String name,
@RequestParam(value = "age", required = true) String age) {
//age參數(shù)必須傳 ,name可傳可不傳
...
}
- @PathVariable
- 該注解用于方法修飾方法參數(shù),會將修飾的方法參數(shù)變?yōu)榭晒┦褂玫膗ri變量(可用于動態(tài)綁定)。
- @PathVariable中的參數(shù)可以是任意的簡單類型,如int, long, Date等等。Spring會自動將其轉(zhuǎn)換成合適的類型或者拋出 TypeMismatchException異常。當(dāng)然,我們也可以注冊支持額外的數(shù)據(jù)類型。
- @PathVariable支持使用正則表達(dá)式,這就決定了它的超強大屬性,它能在路徑模板中使用占位符,可以設(shè)定特定的前綴匹配,后綴匹配等自定義格式。
@RequestMapping(value="/happy/{dayid}",method=RequestMethod.GET)
public String findPet(@PathVariable String dayid, Model mode) {
//使用@PathVariable注解綁定 {dayid} 到String dayid
}
- @RequestBody
- @RequestBody是指方法參數(shù)應(yīng)該被綁定到HTTP請求Body上。
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
//可以綁定自定義的對象類型
}
- @ResponseBody
- @ResponseBody與@RequestBody類似,它的作用是將返回類型直接輸入到HTTP response body中。
- @ResponseBody在輸出JSON格式的數(shù)據(jù)時,會經(jīng)常用到。
@RequestMapping(value = "/happy", method =RequestMethod.POST)
@ResponseBody
public String helloWorld() {
return "Hello World";//返回String類型
}
- @RestController
- 控制器實現(xiàn)了REST的API,只為服務(wù)于JSON,XML或其它自定義的類型內(nèi)容,@RestController用來創(chuàng)建REST類型的控制器,與@Controller類型。
- 它避免了你重復(fù)的寫@RequestMapping與@ResponseBody。
- @ModelAttribute
- @ModelAttribute可以作用在方法或方法參數(shù)上,當(dāng)它作用在方法上時,標(biāo)明該方法的目的是添加一個或多個模型屬性(model attributes)。
- 該方法支持與@RequestMapping一樣的參數(shù)類型,但并不能直接映射成請求??刂破髦械腀ModelAttribute方法會在@RequestMapping方法調(diào)用之前而調(diào)用。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。