Spring註解數據庫
基於Java的配置,容許你在少許的Java註解的幫助下,進行你的大部分Spring配置而非經過XML文件。編程
以@Configuration 註解爲例,它用來標記類能夠當作一個bean的定義,被Spring IOC容器使用。另外一個例子是@Bean註解,它表示此方法將要返回一個對象,做爲一個bean註冊進Spring應用上下文。框架
相對於XML文件,註解型的配置依賴於經過字節碼元數據裝配組件,而非尖括號的聲明。ui
開發者經過在相應的類,方法或屬性上使用註解的方式,直接組件類中進行配置,而不是使用xml表述bean的裝配關係。編碼
註解裝配在默認狀況下是不開啓的,爲了使用註解裝配,咱們必須在Spring配置文件中配置 context:annotation-config/元素。xml
這個註解代表bean的屬性必須在配置的時候設置,經過一個bean定義的顯式的屬性值或經過自動裝配,若@Required註解的bean屬性未被設置,容器將拋出BeanInitializationException。對象
@Autowired 註解提供了更細粒度的控制,包括在何處以及如何完成自動裝配。它的用法和@Required同樣,修飾setter方法、構造器、屬性或者具備任意名稱和/或多個參數的PN方法。繼承
當有多個相同類型的bean卻只有一個須要自動裝配時,將@Qualifier 註解和@Autowire 註解結合使用以消除這種混淆,指定須要裝配的確切的bean。事務
Spring數據訪問資源
42.在Spring框架中如何更有效地使用JDBC?
使用SpringJDBC 框架,資源管理和錯誤處理的代價都會被減輕。因此開發者只需寫statements 和 queries從數據存取數據,JDBC也能夠在Spring框架提供的模板類的幫助下更有效地被使用,這個模板叫JdbcTemplate (例子見這裏here)
JdbcTemplate 類提供了不少便利的方法解決諸如把數據庫數據轉變成基本數據類型或對象,執行寫好的或可調用的數據庫操做語句,提供自定義的數據錯誤處理。
Spring對數據訪問對象(DAO)的支持旨在簡化它和數據訪問技術如JDBC,Hibernate or JDO 結合使用。這使咱們能夠方便切換持久層。編碼時也不用擔憂會捕獲每種技術特有的異常。
在Spring中有兩種方式訪問Hibernate:
控制反轉 Hibernate Template和 Callback。
繼承 HibernateDAOSupport提供一個AOP 攔截器。
Spring支持如下ORM:
Hibernate
iBatis
JPA (Java Persistence API)
TopLink
JDO (Java Data Objects)
OJB
47.如何經過HibernateDaoSupport將Spring和Hibernate結合起來?
用Spring的 SessionFactory 調用 LocalSessionFactory。集成過程分三步:
配置the Hibernate SessionFactory
繼承HibernateDaoSupport實現一個DAO
在AOP支持的事務中裝配
Spring支持兩種類型的事務管理:
編程式事務管理:這意味你經過編程的方式管理事務,給你帶來極大的靈活性,可是難維護。
聲明式事務管理:這意味着你能夠將業務代碼和事務管理分離,你只需用註解和XML配置來管理事務。
它爲不一樣的事務API 如 JTA,JDBC,Hibernate,JPA 和JDO,提供一個不變的編程模式。
它爲編程式事務管理提供了一套簡單的API而不是一些複雜的事務API如
它支持聲明式事務管理。
它和Spring各類數據訪問抽象層很好得集成。
大多數Spring框架的用戶選擇聲明式事務管理,由於它對應用代碼的影響最小,所以更符合一個無侵入的輕量級容器的思想。聲明式事務管理要優於編程式事務管理,雖然比編程式事務管理(這種方式容許你經過代碼控制事務)少了一點靈活性。