Spring is a framework for developing enterprise applications. One of the main targets of spring is to reduce the amount of code the user has to write, so they developed a lot of templates (like a
JDBC template and a Hibernate template) so that you won't need to write a lot of unnecessary code over and over again.
Spring also has many modules. The main two modules are the inversion of control container and the aspect oriented programming module. It also has a web MVC framework.
Spring has nothing to do with struts. It integrates well with struts. Spring MVC is a web mvc framework that could be compared to struts, but not spring as a whole.