我对 IoC 容器很陌生,我打算在一个新项目中使用一个。我不确定我是否一定会需要它,但架构有可能会增长,所以很高兴知道这可以工作。
该项目是一个使用 Resteasy 构建的 Web 服务,并与 Guice 集成。我已经设置它并且它有效。我的问题是如何选择一个接口的实现,因为可以有多个,基于一个变量。例如,用户发送的参数。显而易见的解决方案是一个大的 switch/case 语句,但我希望容器会有所帮助。我查看了辅助注射和 guice 工厂,但我无法解决我的问题。
任何建议都会有所帮助。
我对 IoC 容器很陌生,我打算在一个新项目中使用一个。我不确定我是否一定会需要它,但架构有可能会增长,所以很高兴知道这可以工作。
该项目是一个使用 Resteasy 构建的 Web 服务,并与 Guice 集成。我已经设置它并且它有效。我的问题是如何选择一个接口的实现,因为可以有多个,基于一个变量。例如,用户发送的参数。显而易见的解决方案是一个大的 switch/case 语句,但我希望容器会有所帮助。我查看了辅助注射和 guice 工厂,但我无法解决我的问题。
任何建议都会有所帮助。
mapbinder 扩展正是您所需要的:http: //google-guice.googlecode.com/git/javadoc/com/google/inject/multibindings/MapBinder.html
我没有使用过 guice,所以无法帮助具体到 guice。
但一般的想法应该是使用工厂。Spring
提供工厂bean,可用于根据需要初始化bean。
我相信也应该有类似的东西guice
。考虑使用它,这应该是一个好习惯。
用谷歌搜索一下我就到了这个页面:FactoryProvider,我相信这是你应该考虑的。