In this chapter, we’ll analyze a few different possibilities for integrating Spring and Hibernate. Spring is a lightweight but also flexible and universal Java framework. It is open source, and it can be used at the level of any layer in a Java application. We’ll investigate the principles behind the Spring Framework (dependency injection, also known as inversion of control), and we’ll use Spring together with JPA or Hibernate to build Java persistence applications.