если вы используете программные транзакции, используйте ниже
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="dataSource"/>
</property>
</bean>
Программный означает, что у вас есть код управления транзакциями, окружающий ваш бизнес-код.Это дает чрезвычайную гибкость, но трудно поддерживать.Декларативный означает, что вы отделяете управление транзакциями от бизнес-кода.Вы можете использовать аннотации или конфигурацию на основе XML.
Декларативное управление транзакциями позволяет исключить любые зависимости в структуре транзакций из кода Java.Четыре участника для обеспечения поддержки транзакций - это менеджер транзакций, фабрика прокси, перехватчик транзакций и набор атрибутов транзакции.ниже приведен пример
<bean id="boxOffice" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager"><ref bean="transactionManager"/></property>
<property name="target">
<ref bean="boxOfficeService"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_SUPPORTS,readOnly</prop>
<prop key="allocate*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>