Spring is a Java/JEE application framework that uses dependency injection and inversion of control. It supports integration with ORM tools, web frameworks, and remoting protocols. Spring promotes the Hollywood principle of "don't call me, I'll call you" through its core IOC module where objects are configured from outside rather than constructed within client code. This allows components to be wired together and dependencies to be configured externally via XML.