Spring面試題(四)

  1. 說說IOC中的繼承和Java繼承的區別?
    答:IOC中的繼承體現的是一種實例間的關係,而Java繼承則是類與類之間的關係。所以IOC中的繼承子bean和父bean允許是不同類型的,而Java繼承中,子類其實是一種特殊的父類。最後可以得出Java中的繼承可以又多態性,而IOC中的繼承則不行。

  2. IOC容器自動完成裝載,默認的方式是什麼?
    答:默認是byType的方式。

  3. 說說@Component, @Controller, @Repository,@Service有何區別?
    答:
    @Component, @Service, @Controller, @Repository都是屬於Spring的註解,使用了這些註解後會讓Spring掃描它們並把它們加入到IOC容器中。
    @Component是通用註解,@Controller, @Repository,@Service這三個註解都是它的擴展註解。
    @Repository註解用在持久層(Dao)中,可以將數據庫操作拋出的原生異常轉化爲Spring的持久層異常。
    @Service註解用在業務層(Service),沒有其他擴展功能,只是做個標識,表示這個類用於處理業務。
    @Controller註解用於控制層(Controller),可以將請求進行轉發和重定向。

  4. 說說一個Spring Bean定義包含了什麼??
    答:Spring Bean裏包含了容器要創建對象所必須的配置元數據,Spring Bean會告訴容器應該怎麼創建它,以及它的生命週期詳情和它所需的依賴。

  5. 說說Spring支持的事務管理類型?
    答:
    編程式事務管理:通過代碼來實現事務,使用起來靈活但是維護起來困難。
    聲明式事務管理:將業務代碼與事務管理做了分離,通過xml配置或註解的方式來管理事務。

  6. 開發中更傾向用哪種事務管理類型?
    答:相比起編程式事務管理,聲明式事務管理雖然少了些靈活性,但是它將業務代碼和事務管理做了解耦,對代碼的侵入和影響最小,維護起來也更方便,這也是一種面向切面編程的思想體現,所以開發中選擇聲明式事務管理。

  7. @Required註解有什麼用?
    答:@Required註解適用於Bean屬性setter方法上,表示受影響的Bean中的屬性在配置時是否有被賦予或設置。如果沒有,容器則會拋出BeanInitializationException異常。

  8. @Autowired註解有什麼用?
    答:使用@Autowired註解,可以通過匹配數據類型(默認的方式)來自動裝配Bean,使用起來很靈活,可以自由控制在哪個地方應該裝配哪個Bean。

  9. @Qualifier註解有什麼用?
    答:@Qualifier這個註解一般是配合@Autowired註解一起使用,比如一個接口有多個實現類,可以通過@Service等註解給實現類加上別名,然後在用@Autowired做自動裝配的時候,通過加上@Qualifier(“別名”)的方式,唯一確定要加載的Bean。

  10. @RequestMapping註解有什麼用?
    答:通過@RequestMapping註解,能夠把相應的請求映射到處理該請求的控制器的類和方法上。

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