1. 程式人生 > >Spring -- 三種配置方式

Spring -- 三種配置方式

1、Explicit configuration in XML:顯示的XML配置。

     優點:

     1)XML配置方式進一步降低了耦合,使得應用更加容易擴充套件,即使對配置檔案進一步修改也不需要工程進行修改和重新編譯。

     2)在處理大的業務量的時候,用XML配置應該更加好一些。
     缺點:

     1)配置檔案讀取和解析需要花費一定的時間,配置檔案過多的時候難以管理。

     2)無法對配置的正確性進行校驗,增加了測試難度。

2、Explicit configuration in Java:顯示的JavaConfig,基於java類配置。

      @Configuration

      publicclass Conf {   

@Scope(“prototype”)   

@Bean(“loginUserDao”)

public LoginUserDao loginUserDao() {   

returnnew LoginUserDao();   

         }  

    }   

     在標註了@Configuration的java類中,通過在類方法標註@Bean定義一個Bean。

    通過在成員變數或者方法入參處標註@Autowired按型別匹配注入,也可以使用@Qualifier按名稱配置注入。

    JavaConfig is the preferred option for explicit configuration
because it’s more powerful, type-safe, and refactor-friendly

.

    優點:

    1)在class檔案中,降低維護成本。

    2)不需要第三方解析工具。

    3)編輯期就可以檢驗正確性,提高開發效率

    缺點:

    1)配置程式碼過多時,直接影響程式碼質量,對於程式碼的簡潔度有影響。

    2)業務類之間的關係不如XML配置那樣容易把握。

    3)如果需要修改配置,則要重新編譯整個工程。

3、Implicit bean discovery and automatic wiring:隱式的bean掃描,基於java註解配置,自動注入。

    @Scope(“prototype”)   

    @Lazy(true)  

    @Component(“loginUserDao”)  

    publicclass LoginUserDao {  }   

     @Component:標註一個普通的Spring Bean類

     在方法處通過@Autowired使方法入參繫結Bean,然後在方法中通過程式碼進行注入。

     優點:

     1)在class檔案中,降低維護成本。

     2)不需要第三方解析工具,利用java反射機制。

     3)編輯期就可以檢驗正確性,提高開發效率

     缺點:

     1)如果需要對annotation進行修改,那麼要重新編譯整個工程。

     2)業務類之間的關係不如XML配置那樣容易把握。

     3)如果在程式中annotation比較多,直接影響程式碼質量,對於程式碼的簡潔度有影響。

     4)符合條件的多個bean注入時,spring不知道如何選擇,會有異常NoUniqueBeanDefinitionException。