栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Guice:一个“提供者””用于多种实现

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Guice:一个“提供者””用于多种实现

注入一个[MapBinder](https://google.github.io/guice/api-

docs/latest/javadoc/index.html?com/google/inject/multibindings/MapBinder.html)。

在您的模块中,将绑定加载到中

MapBinder
,然后使您的运行时参数也可注入。本示例基于文档中的示例:

public class SnacksModule extends AbstractModule {  protected void configure() {    MapBinder<String, Snack> mapbinder= MapBinder.newMapBinder(binder(), String.class, Snack.class);    mapbinder.addBinding("twix").to(Twix.class);    mapbinder.addBinding("snickers").to(Snickers.class);    mapbinder.addBinding("skittles").to(Skittles.class);  }}

然后,在您的对象中注入

Map
和参数。对于此示例,我假设您已
java.util.Properties
为运行时参数绑定了:

@Injectpublic MyObject(Map<String, Provider<Snack>> snackProviderMap, Properties properties) {  String snackType = (String) properties.get("snackType");  Provider<Snack> = snackProviderMap.get(property);  // etc.}

注意,使用相同的方法,

MapBinder
您可以注入simple
Map<String, Snack>
Map<String,Provider<Snack>>
; Guice将两者绑定。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/515680.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号