Soy bastante nuevo en Spring Framework, he estado jugando con él y reuniendo algunas aplicaciones de muestra con el fin de evaluar Spring MVC para su uso en un próximo proyecto de la compañía. Hasta ahora, me gusta mucho lo que veo en Spring MVC, parece muy fácil de usar y lo alienta a escribir clases que sean muy fáciles de realizar en las pruebas unitarias.
Solo como ejercicio, estoy escribiendo un método principal para uno de mis proyectos de muestra / prueba. Una cosa que no tengo claro es las diferencias exactas entre BeanFactory
y ApplicationContext
- ¿cuál es apropiado usar en qué condiciones?
Entiendo que se ApplicationContext
extiende BeanFactory
, pero si solo estoy escribiendo un método principal simple, ¿necesito la funcionalidad adicional que ApplicationContext
proporciona? ¿Y exactamente qué tipo de funcionalidad adicional ApplicationContext
proporciona?
Además de responder "¿qué debo usar en un método main ()", ¿existen estándares o pautas en cuanto a qué implementación debo usar en tal escenario? ¿Debería escribirse mi método main () para que dependa de que la configuración de bean / aplicación esté en formato XML? ¿Es una suposición segura o estoy bloqueando al usuario en algo específico?
¿Y esta respuesta cambia en un entorno web? Si alguna de mis clases necesita estar al tanto de Spring, ¿es más probable que la necesiten ApplicationContext
?
Gracias por cualquier ayuda. Sé que muchas de estas preguntas probablemente se respondan en el manual de referencia, pero me resulta difícil encontrar un desglose claro de estas dos interfaces y las ventajas y desventajas de cada una sin leer el manual con un peine de dientes finos.