Spring es un framework de código abierto que facilita el desarrollo de aplicaciones Java mediante la Inversión de Control (IoC) y la Programación Orientada a Aspectos (AOP). IoC permite definir las dependencias entre los componentes de una aplicación de forma declarativa en lugar de mediante código. Spring proporciona dos contenedores principales, BeanFactory y ApplicationContext, que gestionan el ciclo de vida de los objetos y resuelven sus dependencias de acuerdo a la configuración XML.