He leído https://github.com/google/guice/wiki/AssistedInject, pero no dice cómo pasar los valores de los argumentos de AssistedInject. ¿Cómo se vería la llamada injector.getInstance()?¿Cómo usar el AssistedInject de Guice?
Respuesta
Compruebe el javadoc de la clase FactoryModuleBuilder.
AssistedInject
le permite configurar dinámicamente Factory
para la clase en lugar de codificarlo usted mismo. Esto a menudo es útil cuando tienes un objeto que tiene una dependencia que se debe inyectar y algunos parámetros que se deben especificar durante la creación del objeto.
Ejemplo de docummentaiton es un RealPayment
public class RealPayment implements Payment {
@Inject
public RealPayment(
CreditService creditService,
AuthService authService,
@Assisted Date startDate,
@Assisted Money amount) {
...
}
}
Ver que CreditService
y AuthService
debe inyectarse por contenedor, pero startDate y cantidad debe ser especificada por un desarrollador durante la creación de la instancia.
Así que en lugar de inyectar una Payment
se está inyectando un PaymentFactory
con los parámetros que están marcados como @Assisted
en RealPayment
public interface PaymentFactory {
Payment create(Date startDate, Money amount);
}
y una fábrica debe binded
install(new FactoryModuleBuilder()
.implement(Payment.class, RealPayment.class)
.build(PaymentFactory.class));
configurado de fábrica se puede inyectar en tus clases.
@Inject
PaymentFactory paymentFactory;
y utilizado en su código
Payment payment = paymentFactory.create(today, price);
- 1. ¿Qué debo hacer para usar Guice?
- 2. ¿Cómo funciona TypeLiteral de Guice?
- 3. Método de Guice injectMembers
- 4. Guice inject en el servlet
- 5. Jersey Guice JSP cómo hacerlo?
- 6. Guice y archivos de propiedades
- 7. Inyección de constructor usando Guice
- 8. Guice con los padres
- 9. parámetro Pass para el constructor con Guice
- 10. Guice con dependencias circulares
- 11. Cómo utilizar la aplicación Guice en Swing
- 12. Encuadernación primaria en Guice
- 13. Inyectando genéricos con Guice
- 14. Jerarquía de módulos en guice
- 15. Guice/Gin. Cómo inyectar implementaciones múltiples
- 16. Migración de la aplicación para usar Guice: ¿cómo inyectar transacciones en objetos existentes?
- 17. ¿Cómo uso Jersey ExceptionMapper con Google Guice?
- 18. Guice ThrowingProvider problema
- 19. Guice Beginner - ¿Cómo enlazar clases concretas?
- 20. parametrizada con Guice
- 21. Guice vs AspectJ
- 22. ¿Está activo Google Guice?
- 23. ClassNotFoundException con Guice 2.0
- 24. Cómo enlazar Cadena a variable en Guice?
- 25. Características ocultas de Google Guice
- 26. Generalizar el ejemplo de robot-legs de guice con Multibinding
- 27. Guice runtime dependency parameters reinjection
- 28. Problema con el tipo de devolución genérico en fábrica de inyección asistida por guice
- 29. Inyectar implementación genérica utilizando Guice
- 30. Uso de Netbeans RCP con Google Guice
relacionada, las respuestas a continuación no cubren los casos en que se utiliza mismo tipo varias veces. https://stackoverflow.com/questions/23553865/using-assisted-inject-with-multiple-params-of-same-type-named-params – Alex