二、聲明式事務管理 Spring聲明式管理主要是通過TransactionProxyFactoryBean來包裝要管理的目標對象,代理目標對象要實現的接口。看如下代碼首先定義一個目標對象
同編程式事務管理,都需要有transactionManager的對象,這里就不再重復設置;下面看如果設置TransactionProxyFactoryBean來代理目標對象
target屬性是目標對象;proxyInterface是目標對象所實現的接口;transactionAttributes屬性是定義事務的設置級別等。其中"-Exception"表示對所有的異常都做回滾動作。TransactionTemplatate 如果要給對象添加更多的事務屬性,那么使用上述配置便會變得非常臃腫。為了避免該問題你可以使用Transaction Template Beanr為了繼承這個bean的所有bean指定屬性如下,1:先定義一個tmplate bean
2:創建一個包裝事務的bean定義,在transactionAttributeSource屬性中引用這個bean