二、聲明式事務管理
Spring聲明式管理主要是通過TransactionProxyFactoryBean來包裝要管理的目標對象,代理目標對象要實現的接口。
看如下代碼
首先定義一個目標對象











同編程式事務管理,都需要有transactionManager的對象,這里就不再重復設置;下面看如果設置TransactionProxyFactoryBean來代理目標對象



















target屬性是目標對象;proxyInterface是目標對象所實現的接口;transactionAttributes屬性是定義事務的設置級別等。其中"-Exception"表示對所有的異常都做回滾動作。
TransactionTemplatate
如果要給對象添加更多的事務屬性,那么使用上述配置便會變得非常臃腫。為了避免該問題你可以使用Transaction Template Beanr為了繼承這個bean
的所有bean指定屬性如下,1:先定義一個tmplate bean





















另一種配置聲明式事務的是指定一個引用了NameMatchTransactionAttributeSource類并定義了方法和它們行為的bean。這種策略不及template bean簡潔,因為它要求用TransactionProxyFactoryBean來包裝所有的bean。
1:創建一個bean來描述事務屬性











2:創建一個包裝事務的bean定義,在transactionAttributeSource屬性中引用這個bean
















