Я читал https://github.com/google/guice/wiki/AssistedInject, но он не говорит, как передать значения аргументов AssistedInject. Как выглядел бы вызов injector.getInstance()?Как использовать AssiceInject Guice?
ответ
Проверьте javadoc FactoryModuleBuilder класс.
AssistedInject
позволяет динамически настраивать Factory
для класса вместо его кодирования. Это часто полезно, когда у вас есть объект, у которого есть зависимости, которые должны быть введены, и некоторые параметры, которые должны быть указаны при создании объекта.
Пример из docummentaiton является RealPayment
public class RealPayment implements Payment {
@Inject
public RealPayment(
CreditService creditService,
AuthService authService,
@Assisted Date startDate,
@Assisted Money amount) {
...
}
}
Смотрите, CreditService
и AuthService
следует вводить с помощью контейнера, но StartDate и сумма должна быть указана разработчиком в процессе создания экземпляра.
Так вместо того, чтобы впрыскивать Payment
вы нагнетание PaymentFactory
с параметрами, которые помечены как @Assisted
в RealPayment
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
И завод должен быть переплетены
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
Настроенные завод может быть введен в ваши классы.
@Inject
PaymentFactory paymentFactory;
и используется в коде
Payment payment = paymentFactory.create(today, price);
- 1. Как использовать инжектор Guice?
- 2. Guice: использовать инжектор?
- 3. Как использовать Guava ServiceManager с Guice инъекций
- 4. Как использовать Guice в приложении Swing
- 5. Как использовать Google Guice с зашифрованными свойствами?
- 6. Как использовать context.getNamedDispatcher с расширением Guice Servlet
- 7. Как использовать Google Guice с Richfaces 4.3.7
- 8. Как использовать Google Guice для встраивания зависимостей
- 9. Как использовать Заводы, введенные Guice в android?
- 10. исключение интеграции Guice Guice
- 11. Использовать ранее вводили привязки при инициализации Guice
- 12. Джерси Guice JSP как?
- 13. Inject guice dependency в классе non guice
- 14. Что мне нужно сделать, чтобы использовать Guice?
- 15. Зачем использовать Guice Provider вместо обычной инъекции
- 16. Guice: Как создать HttpSessionProvider
- 17. Как выглядит Guice IoC?
- 18. Как проверить Guice Singleton?
- 19. Как интегрировать гессиан с Guice?
- 20. Guice: Как сделать последнее связывание?
- 21. Как использовать Google Guice со стойками (aka. Struts 1)?
- 22. Как заставить Джексона использовать инжектор Google Guice для создания экземпляров?
- 23. Как использовать «футляр для ног робота» с помощью Google Guice?
- 24. Как использовать общий обработчик jsonFile с помощью guice?
- 25. Как использовать два модуль Guice, которые устанавливают модуль общей зависимости
- 26. Как использовать Guice AssistedInject с несколькими реализациями интерфейса?
- 27. Как использовать Google Guice для создания объектов, требующих параметров?
- 28. Как использовать триггер @QueryParam и Guice injection в конструкторе ресурсов?
- 29. Как создать guice-3.0-no_aop.jar из источника guice
- 30. Guice, afterPropertiesSet
связаны, приведенные ниже ответы не охватывает случаи, когда он же типа используется несколько раз. https://stackoverflow.com/questions/23553865/using-assisted-inject-with-multiple-params-of-same-type-named-params – Alex