- Привет!Сегодня я подумал о некоторой оптимизации и у меня возникли вопросы ...
Контекст: я занимаюсь разработкой на Java с использованием Guice 2.
В моемвеб-приложение, у меня есть реестр конвертер для преобразования на лету в определенный тип.Конвертер описывается следующим образом:
public class StringToBoolean implements Converter<String, Boolean>
{
@Override
public Boolean convert(String from)
{
return Boolean.valueOf(from);
}
}
Мой реестр - это не что иное, как Карта:
public class ConverterRegistryImpl implements ConverterRegistry
{
private Map<Key,Converter<?,?>> converterRegistry = new HashMap<Key, Converter<?,?>>();
@Override
public <F, T> void register(Class<F> fromType, Class<T> toType, Converter<F, T> converter)
{
converterRegistry.put(new Key(fromType,toType), converter);
}
}
Наконец я регистрирую свой конвертер в своем реестре (класс: ServletModule: configureServlets ())
Я думаю, этот шаг можно оптимизировать ...
ConverterRegistryImpl registry = new ConverterRegistryImpl();
registry.register(String.class, Integer.class, new StringToInteger());
registry.register(String.class, Boolean.class, new StringToBoolean());
...
//Then I bind the registry to this current instance...
bind(ConverterRegistry.class).toInstance(registry)
Таким образом, я могу использовать его везде так:
@Inject
ConverterRegistry converter;
- Что ж, я ищу лучший способ реализовать это с помощью Guice.
- В общем, как вы создавали такого рода реестр с Guice (или без)?
Заранее спасибо!