Я пытаюсь внедрить карту как боб в один из моих классов (Helper.java
).Я планирую создать эту карту в HelperModule
, где я связал Helper.java
.
Я считаю, что для добавления карты в виде боба мне нужно использовать MapBinder
.А затем заполните все привязки в binderOfMap
и затем в конечном итоге используйте карту в моем классе.
public class HelperModule extends AbstractModule {
@Override
protected void configure() {
log.info("Configuring the helper module.");
configureHelper();
final MapBinder<String, String> binderOfMap =
MapBinder.newMapBinder(binder(), new TypeLiteral<String> () {},
new TypeLiteral<String>() {},
Names.named("CustomMap"));
Map<String, String> myFieldsMap =
myDependency.getCustomMap(SomeConstants);
for (Map.Entry<String, String> entry: myFieldsMap.entrySet()) {
binderOfMap.addBinding(entry.getKey()).toInstance(entry.getValue());
}
private void configureHelper() {
bind(Helper.class).in(Scopes.SINGLETON);
}
}
Должен ли я перебирать весь myFieldsMap
, чтобы добавить к binderOfMap
?Или есть ли способ инициализировать binderOfMap
с помощью myFieldsMap
?
Кроме того, могу ли я теперь напрямую добавить Map<String,String>
с помощью @Named
аннотации ("CustomMap")
в моем классе?