【发布时间】:2010-12-23 22:42:35
【问题描述】:
据我了解,IoC 容器有助于创建应用程序级对象,例如服务和工厂。但是域级对象应该手动创建。 Spring 的手册告诉我们:“通常不会在容器中配置细粒度的域对象,因为创建/加载域对象通常是 DAO 和业务逻辑的责任。”
嗯。但是,如果我的域“细粒度”对象依赖于某个应用程序级对象怎么办。 例如,我有一个 UserViewer(User user, UserConstants constants) 类。 用户有域对象不能注入,但 UserViewer 还需要 UserConstants,这是 IoC-container 注入的高级对象。
我想从 IoC 容器中注入 UserConstants,但我还需要一个临时运行时参数 User。
设计有什么问题?
提前致谢!
更新
我的问题似乎不够准确。我真正需要的是一个如何做到这一点的例子:
创建类UserViewer(User user, UserService service)的实例,其中user作为参数传递,service从IoC注入.
如果我注入 UserViewer 查看器 那么我如何将 user 传递给它?
如果我手动创建 UserViewer 查看器,那么如何将 service 传递给它?
【问题讨论】:
标签: dependency-injection inversion-of-control ioc-container