Java面試-Spring註解系列

4.1、什麼是基於註解的容器配置

不使用 XML 來描述 bean 裝配,開發人員通過在相關的類,方法或字段聲明上 使用註解將配置移動到組件類本身。它可以作爲 XML 設置的替代方案。例如:

Spring 的 Java 配置是通過使用 @Bean @Configuration 來實現。 

@Bean 註解扮演與 元素相同的角色。 @Configuration 類允許通過簡單地調 用同一個類中的其他 @Bean 方法來定義 bean 間依賴關係。

@Configuration
public class StudentConfig {

   @Beanpublic 
   StudentBean myStudent() { 
     return new StudentBean(); 
   }
} 

4.2、如何在 spring 中啓動註解裝配?

默認情況下,Spring 容器中未打開註解裝配。因此,要使用基於註解裝配,我們 必須通過配置 <context:annotation-config/> 元素在 Spring 配置文件 中啓用它。

4.3、@Component, @Controller, @Repository, @Service 有何區別?

@Component :這將 java 類標記爲 bean。它是任何 Spring 管理組件的通 用構造型。spring 的組件掃描機制現在可以將其拾取並將其拉入應用程序環境 中。@Controller :這將一個類標記爲 Spring Web MVC 控制器。標有它的 Bean 會自動導入到 IoC 容器中。@Service :此註解是組件註解的特化。它不 會對 @Component 註解提供任何其他行爲。您可以在服務層類中使用 @Service 而不是 @Component,因爲它以更好的方式指定了意圖。 @Repository :這個註解是具有類似用途和功能的 @Component 註解的特 化。它爲 DAO 提供了額外的好處。它將 DAO 導入 IoC 容器,並使未經檢查 的異常有資格轉換爲 Spring DataAccessException。

4.4、@Required 註解有什麼用?

@Required 應用於 bean 屬性 setter 方法。此註解僅指示必須在配置時使用 bean 定義中的顯式屬性值或使用自動裝配填充受影響的 bean 屬性。如果尚未 填充受影響的 bean 屬性,則容器將拋出 BeanInitializationException。

示例:

public class Employee {
   private String name;
   @Required
    public void setName(String name){
        this.name=name;
    } 
    public string getName(){ 
        return name;
    } 
} 

4.5、@Autowired 註解有什麼用?

@Autowired 可以更準確地控制應該在何處以及如何進行自動裝配。此註解用於 在 setter 方法,構造函數,具有任意名稱或多個參數的屬性或方法上自動裝配 bean。默認情況下,它是類型驅動的注入。

public class Employee {
    private String name;
    @Autowired
    public void setName(String name) {
        this.name=name;
    } 
    public string getName(){
        return name;
    } 
} 

4.6、@Qualifier 註解有什麼用?

當您創建多個相同類型的 bean 並希望僅使用屬性裝配其中一個 bean 時,您可 以使用@Qualifier 註解和 @Autowired 通過指定應該裝配哪個確切的 bean 來消除歧義。

例如,這裏我們分別有兩個類,Employee 和 EmpAccount。在 EmpAccount 中,使用@Qualifier 指定了必須裝配 id 爲 emp1 的 bean。

 

Employee.java

public class Employee { 
   private String name;
   @Autowired
   public void setName(String name) { this.name=name; } 
   public string getName() { return name; } 
} 

EmpAccount.java4.7、@RequestMapping 註解有什麼用?

@RequestMapping 註解用於將特定 HTTP 請求方法映射到將處理相應請求的

控制器中的特定類/方法。此註釋可應用於兩個級別: 類級別:映射請求的 URL 方法級別:映射 URL 以及 HTTP 請求方法

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章