【发布时间】:2010-11-29 05:13:07
【问题描述】:
我当前的项目正在利用 Spring,我们的架构师决定让 Spring 管理服务、存储库和工厂对象,而不是域对象。我们正在密切关注领域驱动设计。不将 spring 用于域对象的原因主要是 spring 只允许静态依赖注入。我所说的静态依赖注入的意思是,依赖是在 xml 配置中指定的并且它们被“冻结”。
我可能错了,但我目前的理解是,即使我的域仅利用接口与对象进行通信,但 spring 的 xml 配置迫使我指定具体的依赖项。因此,所有具体的依赖关系都必须在部署时解决。有时,这是不可行的。我们的大多数用例都基于根据运行时数据或从最终用户收到的消息注入特定类型。
我们的大部分设计都遵循命令模式。因此,当我们收到命令时,我们想构建我们的域模型,并根据从命令收到的数据,将特定的类型集注入到我们的聚合根对象中。因此,由于 Spring 缺乏基于运行时数据构建领域模型的能力,我们不得不使用静态工厂方法、构建器和工厂模式。
如果spring对上述情况有问题,有人可以建议吗?
我可以使用 AOP 来注入依赖项,但是我没有利用 Spring 的基础架构。
【问题讨论】:
标签: java spring command design-patterns