最近SSH框架中,service層中每調用DAO層的接口都有在其前面加個@Resource,耳聞叫做注解,但是究竟是個什么怪物,完全不懂
百度之:
一、
@Resource這是使用到了java注解的一個機制。首先得明白java注解的機制是什么、原理以及有什么好處。
我這里只是簡單介紹了JAVA中的注解的含義,具體使用方法和原理網上可以搜索到很詳細的文章。
JAVA中的注解:
java.lang.annotation.Retention可以在您定義Annotation型態時,指示編譯器如何對待您的自定義 Annotation,預設上編譯器會將Annotation資訊留在class檔案中,但不被虛擬機器讀取,而僅用於編譯器或工具程式運行時提供資訊。
二、對java注解有所認識之后,現在就來聊聊@Resource的用處了。
@Resource 的作用相當於 @Autowired,只不過 @Autowired 按 byType 自動注入,面 @Resource 默認按 byName 自動注入罷了。@Resource 有兩個屬性是比較重要的,分別是 name 和 type,Spring 將 @Resource 注釋的 name 屬性解析為 Bean 的名字,而 type 屬性則解析為 Bean 的類型。所以如果使用 name 屬性,則使用 byName 的自動注入策略,而使用 type 屬性時則使用 byType 自動注入策略。如果既不指定 name 也不指定 type 屬性,這時將通過反射機制使用 byName 自動注入策略。
三、通常我們在使用java依賴注入時,比較喜歡選擇Spring的框架來達到我們的目的,而Spring框架在2.5版本后開始引入了java注解機制,如:@Resource。當然還可以通過看Spring框架的注解機制的使用來幫助學習對java注解的了解。
看了看,連感性的認識也談不上,更別談理解了,看來只得先硬記了,我想項目做多了久了,自然就會理解了,現在不用糾結於此,因為徒勞無益,貌似很多事情都是醬紫的
