二、聲明式事務(wù)管理
Spring聲明式管理主要是通過(guò)TransactionProxyFactoryBean來(lái)包裝要管理的目標(biāo)對(duì)象,代理目標(biāo)對(duì)象要實(shí)現(xiàn)的接口。
看如下代碼
首先定義一個(gè)目標(biāo)對(duì)象











同編程式事務(wù)管理,都需要有transactionManager的對(duì)象,這里就不再重復(fù)設(shè)置;下面看如果設(shè)置TransactionProxyFactoryBean來(lái)代理目標(biāo)對(duì)象



















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





















另一種配置聲明式事務(wù)的是指定一個(gè)引用了NameMatchTransactionAttributeSource類并定義了方法和它們行為的bean。這種策略不及template bean簡(jiǎn)潔,因?yàn)樗笥肨ransactionProxyFactoryBean來(lái)包裝所有的bean。
1:創(chuàng)建一個(gè)bean來(lái)描述事務(wù)屬性











2:創(chuàng)建一個(gè)包裝事務(wù)的bean定義,在transactionAttributeSource屬性中引用這個(gè)bean
















