Spring is an open source framework that provides lightweight dependency injection and aspect-oriented programming. It allows configuring and composing complex applications from simpler components through loose coupling. Spring's core functionality includes dependency injection, aspects, and acting as a container to manage object lifecycles and configurations. It consists of modules that provide functionality like transaction management, JDBC abstraction, MVC framework, and more.