Transactions are a key part of ensuring data integrity in almost any type of application. In this chapter, you learned how to use Spring to manage transactions with almost no impact on your source code. You now know how to use local and global transactions and are aware of the performance and testing implications of using them.
We provided various examples of transaction implementation—declarative using application context files, declarative using source level metadata, and programmatic—and we discussed the practical uses and implications on coding style and manageability of each.
Local transactions are supported outside of a J2EE application server and almost no additional configuration is made to enable local transaction support in Spring. Unfortunately, the setup for global transactions greatly depends on your J2EE application server. Even though it will most likely be very similar to the JBoss example we showed in this chapter, you will need to refer to the application server documentation for more details.