BeanFactory vs ApplicationContext

Sou bastante novo no Spring Framework, ando brincando com ele e reunindo alguns aplicativos de amostra para avaliar o Spring MVC para uso em um projeto da empresa que está por vir. Até agora, eu realmente gosto do que vejo no Spring MVC, parece muito fácil de usar e incentiva você a escrever aulas que são muito amigáveis ao teste de unidade.

Apenas como exercício, estou escrevendo um método principal para um dos meus projetos de amostra / teste. Uma coisa que não tenho certeza é sobre as diferenças exatas entreBeanFactory eApplicationContext - qual é apropriado usar em que condições?

Eu entendi aquiloApplicationContext estendeBeanFactory, mas se estou apenas escrevendo um método principal simples, preciso da funcionalidade extra queApplicationContext fornece? E exatamente que tipo de funcionalidade extra fazApplicationContext providenciar?

Além de responder "qual devo usar em um método main ()", existem padrões ou diretrizes quanto à implementação que devo usar nesse cenário? Meu método main () deve ser escrito para depender da configuração do bean / aplicativo em formato XML - isso é uma suposição segura ou estou bloqueando o usuário em algo específico?

E essa resposta muda em um ambiente web - se alguma de minhas turmas precisou conhecer o Spring, é mais provável que elas precisemApplicationContext?

Obrigado por qualquer ajuda. Sei que muitas dessas perguntas provavelmente foram respondidas no manual de referência, mas estou tendo dificuldades para encontrar uma análise clara dessas duas interfaces e dos prós / contras de cada uma sem ler o manual com um pente fino.

questionAnswers(19)

yourAnswerToTheQuestion