O Spring trata-se de um framework não intrusivo, baseado nos padrões de projeto inversão de controle (IoC) e injeção de dependência. No Spring o container se encarrega de instanciar classes de uma aplicação Java e definir as dependências entre elas através de um arquivo de configuração em formato XML. Dessa forma o Spring permite o baixo acoplamento entre classes de uma aplicação orientada a objetos.
O Spring possui uma arquitetura baseada em interfaces e POJOs (Plain Old Java Objects), oferecendo aos POJOs características como mecanismos de segurança e controle de transações. Também facilita testes unitários e surge como uma alternativa à complexidade existente no uso de EJBs.
Esse framework oferece diversos módulos que podem ser utilizados de acordo com as necessidades do projeto, como módulos voltados para desenvolvimento Web, persistência, acesso remoto e programação orientada a aspectos.
Descrição:http://pt.wikipedia.org/wiki/Spring_Framework