Java面試--Spring技術要點--Spring註解

來源:互聯網
上載者:User

標籤:spring面試   面試   spring註解   resource   autowire   

20  基於Java的Spring註解配置(給一些註解的例子)

基於Java的配置,允許你在少量的Java註解的協助下,進行你的大部分Spring配置而非通過XML檔案。

以@Configuration註解為例,它用來標記類可以當做一個bean的定義,被SpringIOC容器使用。另一個例子是@Bean註解,它表示此方法將要返回一個對象,作為一個bean註冊進Spring應用上下文。(一般很少用java代碼對中繼資料進行配置)

21  Spring基於註解的容器配置、和開啟配置

相對於XML檔案,註解型的配置依賴於通過位元組碼中繼資料裝配組件,而非角括弧的聲明。開發人員通過在相應的類,方法或屬性上使用註解的方式,直接組件類中進行配置,而不是使用xml表述bean的裝配關係。

註解裝配在預設情況下是不開啟的,為了使用註解裝配,我們必須在Spring設定檔中配置<context:annotation-config/> 元素。(<context:annotation-config/>標籤可以開啟自動掃描,同時也開啟註解裝配)

22  Spring註解簡介

  • @Required:這個註解表明bean的屬性必須在配置的時候設定,通過一個bean定義的顯式的屬性值或通過自動裝配,若@Required註解的bean屬性未被設定,容器將拋出BeanInitializationException。
  • @Autowired:註解提供了更細粒度的控制,包括在何處以及如何完成自動裝配。它的用法和@Required一樣,修飾setter方法、構造器、屬性或者具有任意名稱和/或多個參數的PN方法。
  • @Qualifier:當有多個相同類型的bean卻只有一個需要自動裝配時,將@Qualifier註解和@Autowire 註解結合使用以消除這種混淆,指定需要裝配的確切的bean。

23  @Autowired 和@Resource 的區別

  • @Autowired和@Resource都可以用來裝配bean,都可以寫在欄位上,或者方法上。
  • @Autowired屬於Spring的;@Resource為JSR-250標準的注釋,屬於J2EE的。
  • @Autowired預設按類型裝配,預設情況下必須要求依賴對象必須存在,如果要允許null值,可以設定它的required屬性為false,例如:@Autowired(required=false),如果我們想使用名稱裝配可以結合@Qualifier註解進行使用,如下:

@Autowired()

@Qualifier("baseDao")

private BaseDao baseDao;

  • @Resource,預設安裝名稱進行裝配,名稱可以通過name屬性進行指定,如果沒有指定name屬性,當註解寫在欄位上時,預設取欄位名進行安裝名稱尋找,如果註解寫在setter方法上預設取屬性名稱進行裝配。當找不到與名稱匹配的bean時才按照類型進行裝配。但是需要注意的是,如果name屬性一旦指定,就只會按照名稱進行裝配。例如:

@Resource(name="baseDao")

private BaseDao baseDao;

推薦使用:@Resource註解在欄位上,這樣就不用寫setter方法了,並且這個註解是屬於J2EE的,減少了與spring的耦合。這樣代碼看起就比較優雅。

Java面試--Spring技術要點--Spring註解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.