It can be configured with XML or Java (since Spring 3.1).
The two pieces of the Spring framework responsible for transactions are
spring-transaction - classes from the transaction abstraction layer to support of the Java Transaction API and integration with application servers.
spring-aspects - if you are using declarative transactions (@Transactional) you need this. It contains classes for integration with the AspectJ AOP library.
Configuring Transactional support is really quite simple. If you really want to understand whats happening behind the scenes for this to happen once again I would suggest the reference documentation, there is a short novel worth of material on just this topic.