Декларативное управление транзакциями позволяет управлять транзакциями с помощью конфигурационного файла XML или аннотаций, отделяя модуль управления транзакциями от бизнес-логики приложения. 68 Например, для этого используется аннотация @Transactional, которая автоматически создаёт транзакцию при вызове метода, а коммит или откат управляются неявно Spring. 5
Программное управление транзакциями позволяет управлять транзакциями с помощью программного кода. 7 Например, для этого используются шаблоны TransactionTemplate или TransactionalOperator, которые привязывают код к инфраструктуре транзакций и API-интерфейсу Spring. 2
Таким образом, основное отличие в том, что при декларативном управлении управление транзакциями осуществляется через конфигурацию, а при программном — через программный код.