配置的

@Required

@Required 註釋應用於 bean 屬性的 setter 方法,它表明受影響的 bean 屬性在配置時必須放在 XML 配置文件中,否則容器就會拋出一個 BeanInitializationException 異常。下面顯示的是一個使用 @Required 註釋的示例。

@Autowired

@Autowired 註釋可以在 setter 方法中被用於自動連接 bean,就像 @Autowired 註釋,容器,一個屬性或者任意命名的可能帶有多個參數的方法。

  • Setter 方法中的 @Autowired
    你可以在 XML 文件中的 setter 方法中使用 @Autowired 註釋來除去 元素。當 Spring遇到一個在 setter 方法中使用的 @Autowired 註釋,它會在方法中視圖執行 byType 自動連接。
  • 屬性中的 @Autowired
    你可以在屬性中使用 @Autowired 註釋來除去 setter 方法。當時使用 爲自動連接屬性傳遞的時候,Spring 會將這些傳遞過來的值或者引用自動分配給那些屬性。
  • 構造函數中的 @Autowired
    一個構造函數 @Autowired 說明當創建 bean 時,即使在 XML 文件中沒有使用 元素配置 bean ,構造函數也會被自動連接。

默認情況下,@Autowired 註釋意味着依賴是必須的,它類似於 @Required 註釋,然而,你可以使用 @Autowired 的 (required=false) 選項關閉默認行爲。

@Qualifier

當你創建多個具有相同類型的 bean 時,並且想要用一個屬性只爲它們其中的一個進行裝配,在這種情況下,你可以使用 @Qualifier 註釋和 @Autowired 註釋通過指定哪一個真正的 bean 將會被裝配來消除混亂。

@PostConstruct 和 @PreDestroy

@PostConstruct 註釋作爲初始化回調函數的一個替代,@PreDestroy 註釋作爲銷燬回調函數的一個替代

@Resource

@Resource 註釋使用一個 ‘name’ 屬性,該屬性以一個 bean 名稱的形式被注入。你可以說,它遵循 by-name 自動連接語義。如果沒有明確地指定一個 ‘name’,默認名稱源於字段名或者 setter 方法。在字段的情況下,它使用的是字段名;在一個 setter 方法情況下,它使用的是 bean 屬性名稱。

@Configuration 和 @Bean

帶有 @Configuration 的註解類表示這個類可以使用 Spring IoC 容器作爲 bean 定義的來源。@Bean 註解告訴 Spring,一個帶有 @Bean 的註解方法將返回一個對象,該對象應該被註冊爲在 Spring 應用程序上下文中的 bean。

@Bean 註解支持指定任意的初始化和銷燬的回調方法

@Configuration
public class AppConfig {
   @Bean(initMethod = "init", destroyMethod = "cleanup" )
   public Foo foo() {
      return new Foo();
   }
}

指定Bean的範圍

@Configuration
public class AppConfig {
   @Bean
   @Scope("prototype")
   public Foo foo() {
      return new Foo();
   }
}

@Import

@import 註解允許從另一個配置類中加載 @Bean 定義。

@Configuration
public class ConfigA {
   @Bean
   public A a() {
      return new A(); 
   }
}

@Configuration
@Import(ConfigA.class)
public class ConfigB {
   @Bean
   public B a() {
      return new A(); 
   }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章