天天看點

Spring4.0之四:Meta Annotation(元注解)

Spring架構自2.0開始添加注解的支援,之後的每個版本都增加了更多的注解支援。注解為依賴注入,AOP(如事務)提供了更強大和簡便的方式。這也導緻你要是用一個相同的注解到許多不同的類中去。這篇文章介紹meta annotation來解決這個問題。

Meta Annotation(元注解)定義

Spring4.0的許多注解都可以用作meta annotation(元注解)。元注解是一種使用在别的注解上的注解。這意味着我們可以使用Spring的注解組合成一個我們自己的注解。

建立組合注解

自定義注解或組合注解是從其他的Spring元注解建立的。這種注解分為兩類:

1、隻是為了編碼簡單将多個注解組合成一個注解;

2、可以定義一個可複用的注解,這個注解可以解決問題,但是不用記住所有單獨的注解。

如以下的DAO操作:

 沒有任何的業務代碼,但是類上注解的申明就讓代碼有10幾行之多。為了簡化DAO,我們提供一個組合DAO注解,使用Spring元注解來自定義一個注解。

 使用這個自定義/組合注解,我們可以移除掉DAO上的許多注解:

注解的屬性

大部分情況下,注解是需要屬性的。自定義的注解也可以提供屬性。比如:@Repositoy可以提供一個name屬性。

 由于自定義的@MyDao可能被很多DAO使用,是以對@Repository的name寫死是不行的。是以我們簡單的添加一個value屬性到@MyDao上(和@Repository中的相同的value屬性)。

用新的自定義注解定義bean如下:

 更多關于中繼資料注解的問題通路這裡:Srping Framework Reference Documentation