Ответ 1
Вы можете связывать свойства с помощью Names.bindProperties(binder(), getProperties())
, где getProperties
возвращает объект Properties
или Map<String, String>
(чтение файла свойств как объекта Properties
зависит от вас).
Затем вы можете ввести их по имени, используя @Named
. Если у вас есть файл свойств:
foo=bar
baz=true
Вы можете вводить значения этих свойств в любом месте, например:
@Inject
public SomeClass(@Named("foo") String foo, @Named("baz") boolean baz) {...}
Guice может преобразовывать значения из строк в вводимый тип, например, boolean
выше, автоматически (если строка соответствует соответствующему формату). Это работает для примитивных типов, перечислений и классных литералов.