JDBC or JTA with the Spring framework

The Spring framework like any other framework offering aspect oriented programming and inversion of control, let you externalize the transaction handling. Inside your code you will just have an annotation.

@Transactional
public void hello(){
...
}

This is not a special feature of Spring framework. Lighter and easier to learn frameworks like Google Guice or the Nano Container (http://nanocontainer.codehaus.org/) offer the same functionality considering transaction handling. You can find an example for Spring integrating in chapter Hibernate and Spring the section called “Hibernate and Spring”.