2012-06-13 2 views
2

У меня нет опыта разработки с Spring, так как мы являемся магазином Java EE. Тем не менее, мы рассматриваем решение для наших потребностей, которое запускается весной и должно интегрировать наше существующее решение Java EE.Как я могу использовать ту же транзакцию весной и EJB?

После прочтения документации Spring 3.0.5 я все еще не уверен, как транзакция может распространяться с Spring на EJB.

Например, Spring bean создаст транзакцию, сохранит некоторые вещи в одной базе данных и передаст транзакцию одному из наших сессионных bean-компонентов без состояния, который (используя JPA) сохраняет некоторые другие вещи в другую базу данных. И все это должно выполняться под той же транзакцией, которая выполняется, когда элемент управления возвращается в Spring-компонент.

Кроме того, я не совсем понимаю, что такое развертывание: будет ли Spring работать как webapp в EAR, который содержит сессионные компоненты?

ответ

4

Если вы настроите Spring на использование JTATransactionManager, а затем вызовите SessionBean из Spring, компонент должен фактически собрать транзакцию, созданную Spring. Были смотрите здесь: http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/htmlsingle/spring-framework-reference.html#transaction-application-server-integration и описанный <tx:jta-transaction-manager/>

Я на самом деле сделал это только наоборот (присоединение EJB сделка весной), так что я не совсем уверен, но вы можете легко проверить, установив

@TransactionAttribute(TransactionAttributeType.MANDATORY) 

на вашем SessionBean и называть его весной ... если нет существующей транзакции, у вас будет TransactionRequiredException

+0

И могу ли я создать транзакцию, созданную в контейнере JEE, переданную весне, которая затем дает ее мой сеанс? – eerriicc

+0

Да, с весной JTATransactionManager будет участвовать в транзакциях, запущенных EJB ... (если я правильно помню, если вы укажете свой источник данных через jndi, он должен даже работать без агента транзакций на пружинной стороне) – Korgen

Смежные вопросы