Annyce Davis

Helping you write beautiful code

  • Home
  • Public Speaking
  • About Me
  • Courses
  • Life

Basic Spring Transactions

May 18, 2009 by Annyce Davis Leave a Comment

Spring offers a few options when it comes to transaction management. I used the Programmatic Transaction option this was the easiest to implement in the architecture that I was working with. Here are the steps that I used.

First I modified the jboss-spring.xml file to include a bean reference to the JTA Transaction Manager.

jboss-spring.xml

<bean id=”transactionManager”
class=”org.springframework.transaction.jta.JtaTransactionManager” />

Then in the classes that I wanted to use transactions I added a reference to the bean as a property in the jboss-spring.xml file.

<bean id=”bookMgmtHandler” class=”com.davis.bo.BookMgmtHandler”>
<property name=”bookDAO” ref=”bookDAO” />
<property name=”transactionManager” ref=”transactionManager”/>
</bean>

I then needed to add some imports to the actual Java class that would contain the transactional references. The additional functions that I needed to add related to Spring transactions are highlighted in bold.

BookMgmtHandler.java


import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;

public class BookMgmtHandler {

BookDAO BookDAO = null;
BookDataAggregator BookDataAggregator = null;

private PlatformTransactionManager transactionManager = null;

private TransactionDefinition getDefinition() {
DefaultTransactionDefinition def = new DefaultTransactionDefinition
(TransactionDefinition.PROPAGATION_REQUIRED);

return def;
}

public Book saveBook(Book book) throws BOOKException {

Book retBook = null;
TransactionStatus status = transactionManager.getTransaction(getDefinition());

// put a block for catching exceptions to rollback the transaction
try {
BookDAO.updateBook(book);
retBook = BookDataAggregator.getBook(book.getBookID());
}
catch (BOOKException be){
transactionManager.rollback(status);
throw be;
}

transactionManager.commit(status);
return retBook;
}


public void setTransactionManager(PlatformTransactionManager platformTransactionManager) {
this.transactionManager = platformTransactionManager;
}
}

And that’s it!

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)
  • Click to share on LinkedIn (Opens in new window)

Related

Filed Under: Java, Uncategorized Tagged With: Spring

Newsletter

Follow Me

Dev Machine Setup – Mobile Development

A new machine. Now what? Time to set it all up. Inevitably I end up going back and forth from my old machine or worse yet, my memory, to figure out what needs … [Read More...]

Dagger Multibinding in Dynamic Feature Modules

We're adding the use of dynamic feature modules to our app. This will help us to improve build speeds, conditionally include features and decouple our code. As … [Read More...]

Categories

  • Android (49)
  • Career (2)
  • Communication (2)
  • Flutter (1)
  • Git (3)
  • Gradle (4)
  • Grails (23)
  • Java (8)
  • JavaScript (6)
  • Kotlin (9)
  • Life (3)
  • Public Speaking (20)
  • RxJava (1)
  • Software Development (2)
  • Twitter (3)
  • Uncategorized (11)
  • Video Course (4)

Copyright © 2019 · Beautiful Pro Theme on Genesis Framework · WordPress · Log in