Google Guice: Singleton с поддержкой десериализации xml? - PullRequest
1 голос
/ 16 сентября 2011

в моем проекте мне нужен класс, который содержит конфигурацию проекта. Конфигурация должна быть загружена из файла XML и должна быть одноэлементной.

В Guice есть одноэлементная область. Теперь мне нужно «перезаписать» синглтон с десериализованной конфигурацией.

Возможно ли это как-нибудь?

1 Ответ

1 голос
/ 20 сентября 2011

Важно: pelase, обратите внимание, что Guice изначально был создан, чтобы избавиться от всех этих огромных и уродливых XML-файлов, используемых другой библиотекой DI для управления зависимостями.В общем, при использовании Guice вы должны иметь возможность полностью удалить XML из вашего проекта.

Но если вам необходимо, возможно, потому что файл XML генерируется чем-то, что находится вне вашего контроля, подумайте над этим:

Сохраните весь объект конфигурации и создайте для него Provider и привяжите его в области действия Singleton.Но вам придется выполнить десериализацию самостоятельно.

Или, если ваша конфигурация просто состоит из пар (имя, значение), вы можете использовать java.util.Properties, который может быть загружен из файла XML, а затем использоватьGuice Names.bindProperties() API в одном из Module s.

Затем вы можете напрямую внедрить каждое отдельное свойство, используя @Inject @Named.

...