我是D.I.的忠实粉丝
我目前正在开发一个使用D.I.的不那么小的项目。到处
(经典而美丽的D.I. 手工)。
从我的观点来看,有以下优点:
但遗憾的是,我无法弄明白,D.I。可以与外国创建一起使用 对象以优雅的方式(没有一些框架,请记住, 我做D.I.用手)。
D.I。手动意味着:你将某些东西传递给c-tor 。 没有全球工厂或类似的,上帝保佑!
例如,JAXB自己创建对象。没有办法 告诉JAXBContext:“请使用以下参数创建我的 对象“.JAXB只接受无参数的c-tors。有什么想法吗?
答案 0 :(得分:3)
为什么“D.I.手工”必须表示“将某些东西传递给c-tor”?
你能这样做吗?
ThingOne one = new ThingOne();
one.setInjectedItem( a );
one.setOtherInjectedItem( b );
在春季依赖注入中,这将是通过属性注入,我不明白为什么这不能“手工”完成。
答案 1 :(得分:2)
JAXBContext不能使用factory method吗?您可以像使用构造函数一样将参数传递给它。如果那不能达到你想要的效果,那么在创建你的对象后,传统的setter注入(即调用context.setXyz(xyzInstance)
方法)将会手动模拟spring等人自动执行的操作......
答案 2 :(得分:0)
众所周知,人们会使用getter injection来做到这一点。我不知道如何在luddite DI环境中这样做。