Classes abstratas e classes @Configuration do Spring 3.1 andam de mãos dadas

Configurar beans Spring a partir de bibliotecas pode ser uma dor. Muitos pequenos arquivos de contexto XML em todo o lugar e / ou dependências indesejadas de tempo de compilação do Spring são alguns dos problemas.

Classes de configuração abstratas projetadas de maneira adequada combinadas com as classes @Configuration do Spring 3.1 ajudam muito a tirar um pouco da dor e ao mesmo tempo reduzir a chance de cometer erros de configuração.

Exemplo do projeto MongoDB do Spring:
http://static.springsource.org/spring-data/data-mongodb/docs/current/api/org/springframework/data/mongodb/config/AbstractMongoConfiguration.html