1. 程式人生 > >springmvc常用的註解及其含義

springmvc常用的註解及其含義

 1.@Controller
 作用: 告訴springmvc的dispatcherServlet這是一個Controller然後被dispatcherServlet的上下文所管理,
並且完成它的依賴注入
              2. @Service
 作用:這個註解常用於標註業務層元件
             3. @Autowired
 作用:它可以對類成員變數、方法及建構函式進行標註,完成自動裝配的工作
@Autoware預設按型別匹配注入Beanrequired屬性:如果希望Spring即使找不到匹配的Bean完成注入也不要丟擲異常,那麼可以使用@Autoware(required=false)進行標註:
             4. @RequestMapping
作用:@RequestMapping 標記在Controller 類上的時候,裡面使用@RequestMapping 標記的方法的請求地址都是
相對於類上的@RequestMapping 而言的;當Controller 類上沒有標記@RequestMapping 註解時,方法上的
@RequestMapping 都是絕對路徑。這種絕對路徑和相對路徑所組合成的最終路徑都是相對於根路徑“/ ”而言的。
              [email protected]、@PathVariable
 作用:兩者的作用都是將request裡的引數的值繫結到contorl裡的方法引數裡的,區別在於,url不同
(1)@PathVariable的url是這樣的:http://host:port/.../path/引數值@RequestMapping("/bookings/{booking}") public String getBooking(@PathVariable Long booking) {   (2)@RequestParam的url是這樣的:http://host:port/.../path?引數名=引數值@RequestMapping(method = RequestMethod.GET)public String setupForm(@RequestParam("petId") int petId, ModelMap model) {
Pet pet = this.clinic.loadPet(petId);model.addAttribute("pet", pet); return "petForm";        [email protected] 作用:基本思想是在方法加上@Cacheable註解,這個方法的返回值將具有快取特性。@Cacheable註解可以用在方法或者類級別。當他應用於方法級別的時候,就是如上所說的快取返回值了。(1)當應用在類級別的時候,這個類的所有方法的返回值都將被快取。(2)@Cacheable註解有三個引數,value是必須的,還有key和condition。第一個引數,也就是value指明瞭緩存將被存到什麼地方。  (3)任何儲存在快取中的資料為了高速訪問都需要一個key。Spring預設使用被@Cacheable註解的方法的簽名來作為key,當然你可以重寫key,自定義key可以使用SpEL表示式。(4) @Cacheable的最後一個引數是condition(可選),同樣的,也是引用一個SpEL表示式。但是這個引數將指明方法的返回結果是否被快取。
[email protected](確切的說是@Resource註解是由J2EE提供)
作用:@Resource要求提供一個Bean名稱的屬性(name),如果屬性為空,
則自動採用標註處的變數名或方法名作為Bean的名稱。
@resource註解就是把一個bean注入到當前的類中,可以不必通過配置檔案或者導包的方式注入就可以使用該bean,預設是ByName的方式注入,如:@resource(name=“personDaoBean”)private personDaoBean personDaobean;這樣就可以直接使用personDaoBean這個Bean,以及其setter和getter方法。             8. @ResponseBody
 作用:該註解用於將Controller的方法返回的物件,根據HTTP Request Header的Accept的內容,
通過適當的HttpMessageConverter轉換為指定格式後,寫入到Response物件的body資料區。
  使用時機:返回的資料不是html標籤的頁面,而是其他某種格式的資料時(如json、xml等)使用。配置返回JSON和XML資料              [email protected]
 作用: @Component泛指元件,當元件不好歸類的時候,我們可以使用這個註解進行標註。
 (把普通pojo例項化到spring容器中,相當於配置檔案中的<bean id="" class=""/>)
             10. @Scope
 作用: @scope 就是用來配置 spring bean 的作用域,它標識 bean 的作用域。
@Scope 簡單點說就是用來指定bean的作用域
scope用來宣告IOC容器中的物件應該處的限定場景或者說該物件的存活空間,即在IOC容器在物件進入相應的scope之前,生成並裝配這些物件,在該物件不再處於這些scope的限定之後,容器通常會銷燬這些物件              [email protected]
 作用:Spring 配置檔案中 dependency-check 依賴檢查的靈活性不夠,並不能滿足我們所有的需求
Spring還提供一種更加靈活的檢查方式 
  注意:@required只能注設定到setter方法上面              [email protected]
 作用:我們知道,@Autowired預設是按照型別裝配注入的,如果想按照名稱來轉配注入,則需要結合@Qualifier一起使用
   @Autowired通過此註解完成從spring配置檔案中 查詢滿足studentDao型別的bean
       @Qualifier("studentDao")則按照名稱經行來查詢轉配的
[email protected]
 作用:它用於將資料訪問層 (DAO 層 ) 的類標識為 Spring Bean。具體只需將該註解標註在 DAO類上即可。
同時,為了讓 Spring能夠掃描類路徑中的類並識別出 @Repository 註解,需要在 XML 配置檔案中啟用Bean 
        的自動掃描功能,這也可以通過<context:component-scan/>實現。