Ho letto https://github.com/google/guice/wiki/AssistedInject, ma non dice come passare i valori degli argomenti AssistedInject. Come apparirebbe la chiamata injector.getInstance()?Come usare Guice AssistedInject?
risposta
Controllare la classe javadoc FactoryModuleBuilder.
AssistedInject
consente di configurare dinamicamente Factory
per la classe anziché codificarlo da solo. Ciò è spesso utile quando si dispone di un oggetto con dipendenze da iniettare e alcuni parametri che devono essere specificati durante la creazione dell'oggetto.
Esempio da docummentaiton è una RealPayment
public class RealPayment implements Payment {
@Inject
public RealPayment(
CreditService creditService,
AuthService authService,
@Assisted Date startDate,
@Assisted Money amount) {
...
}
}
Vedere che CreditService
e AuthService
deve essere iniettato dal contenitore ma startDate e la quantità deve essere precisato dai uno sviluppatore durante la creazione dell'istanza.
Così, invece di iniettare un Payment
si sta iniettando un PaymentFactory
con i parametri che sono contrassegnati come @Assisted
in RealPayment
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
e una fabbrica deve essere rilegata
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
fabbrica configurato può essere iniettato in le tue lezioni
@Inject
PaymentFactory paymentFactory;
e utilizzati nel codice
Payment payment = paymentFactory.create(today, price);
- 1. Guice assistedinject già configurato
- 2. Come usare l'iniettore di Guice?
- 3. Come usare guice-servlet con Jersey 2.0?
- 4. Qual è l'equivalente Spring di FactoryModuleBuilder, @AssistedInject e @Assisted in Guice?
- 5. Cosa devo fare per usare Guice?
- 6. Linee guida generali sulle prestazioni Guice
- 7. Jersey Guice JSP come?
- 8. Come utilizzare Guice nell'applicazione Swing
- 9. Come posso passare i parametri a un provider con Guice?
- 10. Come specificare un classificatore nella dipendenza di una dipendenza gradle?
- 11. Iniezione costruttore con Guice
- 12. Fornitore di Guice RESTEasy
- 13. Guice Iniettare campo in classe non creato da Guice
- 14. Guice: evitare l'iniezione pigra
- 15. auto scan for guice
- 16. Guice vs AspectJ
- 17. Guice ThrowingProvider problema
- 18. ClassNotFoundException con Guice 2.0
- 19. iniettando chiamato Guice Singleton
- 20. Google Guice è attivo?
- 21. Come agganciare Jackson ObjectMapper con Guice/Jersey
- 22. Come associare String a variabile in Guice?
- 23. Guice/Gin. Come iniettare più implementazioni
- 24. Come funziona il TypeLiteral di Guice?
- 25. Come testare le implementazioni di Guice AbstractModule?
- 26. Esempio semplice con servlet Guice
- 27. Modulo Guice con parametri tipo
- 28. Guice e configurazione generale dell'applicazione
- 29. Dropwizard e Guice: iniettare l'ambiente
- 30. Funzioni nascoste di Google Guice
correlate, le risposte qui sotto non coprono i casi in cui egli stesso tipo viene utilizzato più volte. https://stackoverflow.com/questions/23553865/using-assisted-inject-with-multiple-params-of-same-type-named-params – Alex