1. 程式人生 > >spring面試題(三):註解+資料訪問

spring面試題(三):註解+資料訪問

Spring註解

1. 什麼是基於Java的Spring註解配置? 給一些註解的例子.

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

以@Configuration 註解為例,它用來標記類可以當做一個bean的定義,被Spring IOC容器使用。另一個例子是@Bean註解,它表示此方法將要返回一個物件,作為一個bean註冊進Spring應用上下文。

 

2. 什麼是基於註解的容器配置?

相對於XML檔案,註解型的配置依賴於通過位元組碼元資料裝配元件,而非尖括號的宣告。

開發者通過在相應的類,方法或屬性上使用註解的方式,直接元件類中進行配置,而不是使用xml表述bean的裝配關係。

 

3. 怎樣開啟註解裝配?

註解裝配在預設情況下是不開啟的,為了使用註解裝配,我們必須在Spring配置檔案中配置 <context:annotation-config/>元素。

 

4. @Required  註解

這個註解表明bean的屬性必須在配置的時候設定,通過一個bean定義的顯式的屬性值或通過自動裝配,若@Required註解的bean屬性未被設定,容器將丟擲BeanInitializationException。

 

5. @Autowired 註解

@Autowired 註解提供了更細粒度的控制,包括在何處以及如何完成自動裝配。它的用法和@Required一樣,修飾setter方法、構造器、屬性或者具有任意名稱和/或多個引數的方法。

 

6. @Qualifier 註解

當有多個相同型別的bean卻只有一個需要自動裝配時,將@Qualifier 註解和@Autowire 註解結合使用以消除這種混淆,指定需要裝配的確切的bean。

 

Spring資料訪問

1.在Spring框架中如何更有效地使用JDBC? 

使用SpringJDBC 框架,資源管理和錯誤處理的代價都會被減輕。所以開發者只需寫statements 和 queries從資料存取資料,JDBC也可以在Spring框架提供的模板類的幫助下更有效地被使用,這個模板叫JdbcTemplate 

 

2. JdbcTemplate

JdbcTemplate 類提供了很多便利的方法解決諸如把資料庫資料轉變成基本資料型別或物件,執行寫好的或可呼叫的資料庫操作語句,提供自定義的資料錯誤處理。

 

3. Spring對DAO的支援

Spring對資料訪問物件(DAO)的支援旨在簡化它和資料訪問技術如JDBC,Hibernate or JDO 結合使用。這使我們可以方便切換持久層。編碼時也不用擔心會捕獲每種技術特有的異常。

 

4. 使用Spring通過什麼方式訪問Hibernate? 

在Spring中有兩種方式訪問Hibernate:

  • 控制反轉  Hibernate Template和 Callback。
  • 繼承 HibernateDAOSupport提供一個AOP 攔截器。

 

5. Spring支援的ORM

Spring支援以下ORM:

  • Hibernate
  • iBatis
  • JPA (Java Persistence API)
  • TopLink
  • JDO (Java Data Objects)
  • OJB

 

6.如何通過HibernateDaoSupport將Spring和Hibernate結合起來?

用Spring的 SessionFactory 呼叫 LocalSessionFactory。整合過程分三步:

  • 配置the Hibernate SessionFactory。
  • 繼承HibernateDaoSupport實現一個DAO。
  • 在AOP支援的事務中裝配。

 

7. Spring支援的事務管理型別

Spring支援兩種型別的事務管理:

  • 程式設計式事務管理:這意味你通過程式設計的方式管理事務,給你帶來極大的靈活性,但是難維護。
  • 宣告式事務管理:這意味著你可以將業務程式碼和事務管理分離,你只需用註解和XML配置來管理事務。

 

8. Spring框架的事務管理有哪些優點?

  • 它為不同的事務API  如 JTA,JDBC,Hibernate,JPA 和JDO,提供一個不變的程式設計模式。
  • 它為程式設計式事務管理提供了一套簡單的API而不是一些複雜的事務API如
  • 它支援宣告式事務管理。
  • 它和Spring各種資料訪問抽象層很好得整合。

 

9. 你更傾向用那種事務管理型別?

大多數Spring框架的使用者選擇宣告式事務管理,因為它對應用程式碼的影響最小,因此更符合一個無侵入的輕量級容器的思想。宣告式事務管理要優於程式設計式事務管理,雖然比程式設計式事務管理(這種方式允許你通過程式碼控制事務)少了一點靈活性。