Mi proyecto actual está aprovechando Spring, y nuestro arquitecto ha decidido permitir que Spring administre Servicios, Repositorios y objetos Factory, pero NO objetos de dominio. Estamos siguiendo de cerca el diseño impulsado por el dominio. El razonamiento detrás de no usar el resorte para objetos de dominio es principalmente que la primavera solo permite la inyección de la dependencia estática. Lo que quiero decir con la inyección de dependencia estática es que las dependencias se especifican dentro de la configuración xml y se "congelan".Inyección de dependencia de tiempo de ejecución con Spring
Tal vez esté mal, pero mi entendimiento actual es que aunque mi dominio solo aprovecha las interfaces para comunicarse con objetos, la configuración xml de spring me obliga a especificar una dependencia concreta. por lo tanto, todas las dependencias concretas deben resolverse en el momento del despliegue. Algunas veces, esto no es factible. La mayoría de nuestros usos se basan en la inyección de un tipo particular en función de los datos de tiempo de ejecución o un mensaje recibido de un usuario final.
La mayor parte de nuestro diseño sigue el patrón de comando. por lo tanto, cuando recibimos un comando, nos gustaría construir nuestro modelo de dominio y, en base a los datos recibidos de un comando, inyectamos un conjunto particular de tipos en nuestro objeto raíz agregado. Por lo tanto, debido a la falta de la capacidad de la primavera para construir un modelo de dominio basado en datos de tiempo de ejecución, nos vemos obligados a utilizar métodos estáticos de fábrica, constructores y patrones de Fábrica.
¿Puede alguien por favor avisar si la primavera tiene un problema con el escenario anterior?
Podría usar AOP para inyectar dependencias, pero entonces no estoy aprovechando la infraestructura de Spring.
Eso es vender Spring un poco corto. Es capaz de estas cosas, solo requiere un poco más de esfuerzo. – skaffman