Spring is a framework that solves a lot of common problems in web application development. When you use it, you can focus on writing your actual application, instead of writing all the plumbing that has to be done in every web application.
Hibernate is a framework that allows you to save objects to a database without having to write SQL queries.
The Spring Framework is a product that's designed to make software development more productive. At its heart, it relies on linking components together like TinkerToys™. This is primarily accomplished by 2 things:
1. A Bean Factory that constructs an initializes new instances of components (JavaBeans)
2. An Inversion of Control (IoC) mechanism that connects components together by injecting references into them.
The core framework is fairly compact, but over the years, a rather large circle of Spring component packages has emerged. For example, Spring Data deals with the management of persistable data. It provides a uniform mechanism where you can persist to SQL, NoSQL, and various other data storage types such as Neo4J, which unlike traditional RDBMS's worries more about the relations between data objects than the data objects themselves.
In addition to Spring data, there are numerous other components, with lots of sub-component options. For example, there are timing and scheduling services, mail services and lots more. Spring Web provides a MVC framework. Spring Security provides a standard security mechanism (because only an idiot develops their own security system if they're not trained full-time security people).
These component packages are well-documented, provide a more standardized interface and - most importantly - some other poor sucker has had to do all the work of designing, coding, and debugging them so you don't have to!
Hibernate is an Object Relational Management system. At one time there were quite a few ORM products, and they tended to be similar in function and features, but not interchangeable. When Sun created the Enterprise JavaBeans standard Version 3, however, the authors of Hibernate, along with many other industry groups formulated an ORM interface standard called Java Persistence Architecture (JPA). Although JPA is defined by the EJB3 standard, it doesn't require full EJB to function, which makes it especially useful in limited-stack servers like Tomcat, and even in non-web programs.
Hibernate isn't the only supplier of JPA. For example, the Apache OpenJPA project makes a JPA product as well. And Hibernate itself actually appears in 2 forms: legacy form (pre-JPA) and Hibernate JPA. While I encourage all new work to use Hibernate JPA, you'll see a lot of questions relating to legacy Hibernate here on the Ranch. Some people have old code to maintain. Some people have old books.
When it comes to destroying a civilization, gas chambers cannot hold a candle to echo chambers.