Объединяя Guice и JAXB
У меня есть класс, который должен использовать Dependency Injection (используя Guice), но в данный момент он создается JAXB, поэтому очевидно, что ничего не вводится. Любая идея о том, как решить эту проблему / сказать JAXB использовать инжектор Guice в качестве фабрики объектов?
Спасибо за любой намек на это!
1 ответ
скажите JAXB использовать инжектор Guice в качестве фабрики объектов
Я не думаю, что это возможно. Самое близкое, что вы можете получить - это инъекция по требованию, то есть инъекция в уже существующий объект; это будет работать, очевидно, только для инъекционных полей и методов, а не для конструкторов.
Кстати, классы JAXB обычно представляют данные, не так ли? Тогда у них действительно не должно быть никаких зависимостей, потому что это, вероятно, нарушение принципа единой ответственности - классы данных должны только содержать и передавать данные, и ничего более. Переместите ваш логический код из классов JAXB в отдельные классы, которые работают с классами JAXB. Затем вы можете использовать Guice для создания экземпляров этих "сервисных" классов.