Spring Framework与Google Guice中的FactoryModuleBuilder,@AssistedInject和@Assisted等效是什么?换句话说,使用Spring创建工厂对象的建议方法是什么,其方法接受应用程序(而不是容器)必须提供的参数?
Spring静态工厂方法与 FactoryModuleBuilder
不同 . FactoryModuleBuilder
构建一个Guice模块,生成"factories",实现Factory Method Pattern . 与Spring静态工厂方法不同,这些工厂对象的方法是实例方法,而不是静态方法 . 静态工厂方法的问题在于它是静态的并且不实现接口,因此不能用替代工厂实现替换它 . 但是,不同的 FactoryModuleBuilder
实例可以构建实现相同接口的不同工厂 .
2 回答
Spring没有与Guice
FactoryModuleBuilder
相同的东西 . 最接近的等价物是Spring@Configuration
类,它提供了一个工厂bean,它实现了一个工厂接口,该接口的方法接受来自应用程序的任意参数 . Spring容器可以将依赖项注入到@Configuration
对象中,而该对象又可以提供给工厂构造函数 . 与FactoryModuleBuilder
不同,Spring方法产生了许多工厂实现典型的样板代码 .例:
我不完全确定这个问题是一个骗局,(只有90%肯定),但这个答案:
https://stackoverflow.com/a/13243066/1768232
似乎拥有您需要的信息 . 具体来说,你应该这样做:
我建议阅读整个答案 .