Какими бывают транзакции в Spring?
Заметьте, данный пост не является справочником по работе с транзакциями в Spring, а лишь описывает способы распространения транзакций.
Пожалуйста, будьте ознакомлены с разницей между физическими и логическими транзакциями.
В посте рассматривается версия Spring 2.5.4
Транзакции в Spring могут принимать следующие значения:
- REQUIRED – Является значением по умолчанию. Поддерживает текущую транзакцию, создает новую если транзакция ещё не существует. Аналогичен с атрибутом в EJB транзакции с таким же именем.
- SUPPORTS – Поддерживает текущую транзакцию, а так же выполняется вне транзакции, если на момент выполнения транзакция не была создана. Аналогичен с атрибутом в EJB транзакции с таким же именем.
- MANDATORY – Поддерживает текущую транзакцию, если на момент выполнения транзакция не была создана, выбрасывается исключение. Аналогичен с атрибутом в EJB транзакции с таким же именем.
- REQUIRES_NEW – Создает новую транзакцию, приостанавливает текущую транзакцию (если она существует). Аналогичен с атрибутом в EJB транзакции с таким же именем.
- NOT_SUPPORTED - Выполняется вне транзакции, приостанавливает текущую транзакцию (если она существует). Аналогичен с атрибутом в EJB транзакции с таким же именем.
- NEVER - Выполняется вне транзакции, выбрасывается исключение, если транзакция существует. Аналогичен с атрибутом в EJB транзакции с таким же именем.
- NESTED – Выполняется в пределах вложенной транзакции, если текущая транзакция существует. В EJB нет аналога даному атрибуту.
В следующих постах мы детально рассмотрим принципы работы вышеперечисленых видов транзакций в Spring.
To be continued….
Первое дыхание Spring Framework 3.0 milestone
В предверии нового года SpringSource анонсировала Spring Framework 3.0 milestone. Главной фичей релиза стала поддержка REST. Более детальную информацию о релизе можно получить на официальном тим блоге проекта.
Инициализация “static property” в “Spring application context configuration”
В проекте, над которым я работаю в данный момент, возникла необходимость инициализации статических свойств (в моем случае это Axis – org.apache.axis.AxisProperties) при формировании спрингового контекста. Закатав рукава с криками “Да это как два байта переслать” сразу же возник следующий вопрос: “Как в Spring application context configuration статическому методу передать параметры ?” (more…)
