【SpringBoot注解】@Component@Service@Repositpry@Controller@RestController...

聲明Bean的注解

  1. @Component 沒有明確角色的組件。泛指組件,當(dāng)組件不好歸類的時候,我們可以使用這個注解進(jìn)行標(biāo)注。
  2. @Service 在業(yè)務(wù)邏輯層(Service層)使用
  3. @Repositpry 在數(shù)據(jù)訪問層(dao層)使用,標(biāo)注一個DAO組件類。這個注解修飾的DAO或者repositories類會被ComponetScan發(fā)現(xiàn)并配置,同時也不需要為它們提供XML配置項。
  4. @Controller 用于標(biāo)注控制層組件。用于定義控制器類,在spring項目中由控制器負(fù)責(zé)將用戶發(fā)來的URL請求轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)接口(service層),一般這個注解在類中,通常方法需要配合注解@RequestMapping。
  5. @RestController 用于標(biāo)注控制層組件(如struts中的action),@ResponseBody和@Controller的合集。

裝配bean時常用的注解

  1. @Autowired:自動導(dǎo)入依賴的bean
  2. @Resource(name=”name”,type=”type”):沒有括號內(nèi)內(nèi)容的話,默認(rèn)byName。與@Autowired干類似的事。
  3. @PostConstruct@PreDestroy 方法 實現(xiàn)初始化和銷毀bean之前進(jìn)行的操作

spring MVC模塊注解 -- web模塊常用到的注解

  1. @Controller
    定義控制器,它還允許自動檢測定義在類路徑下的組件(配置文件中配置掃描路徑)并自動注冊。
  2. @RequestMapping
    用于將url映射到整個處理類或者特定的處理請求的方法??梢灾挥猛ㄅ浞?!
    @RequestMapping 既可以作用在類級別,也可以作用在方法級別。當(dāng)它定義在類級別時
  3. @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可傳可不傳
  ...
  }
  1. @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
}
  1. @RequestBody
  • @RequestBody是指方法參數(shù)應(yīng)該被綁定到HTTP請求Body上。
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
   //可以綁定自定義的對象類型
}
  1. @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類型
}
  1. @RestController
  • 控制器實現(xiàn)了REST的API,只為服務(wù)于JSON,XML或其它自定義的類型內(nèi)容,@RestController用來創(chuàng)建REST類型的控制器,與@Controller類型。
  • 它避免了你重復(fù)的寫@RequestMapping與@ResponseBody。
  1. @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ù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容