provides google dependency java guice

java - google - El método de instalación guice AbstractModule



inject dependency guice (1)

install permite la composición: dentro de su método de configure , FooModule puede instalar FooServiceModule (por ejemplo). Esto significaría que un Inyector creado solo en FooModule incluirá enlaces y proveedores tanto en FooModule como en FooServiceModule.

Puede ver la install utilizada para dividir un Módulo en submódulos lógicos para facilitar la lectura o las pruebas, o para un Módulo de alto nivel para asegurar que sus dependencias estén configuradas. También puede usarlo para crear instancias de módulos con diferentes parámetros de constructor (por ejemplo, vincular múltiples almacenes de datos), o para instalar instancias de módulos generadas automáticamente como las creadas a través de FactoryModuleBuilder .

La composición del módulo puede ser un arma de doble filo, porque no se permiten enlaces duplicados: si FooModule y BarModule install el mismo módulo dependiente y los enlaces no son duplicados exactos (por ejemplo, si un módulo crea una instancia de un objeto en su método de configure ), Guice no podrá crear ningún inyector que instale tanto FooModule como BarModule debido al enlace duplicado. Puede hashCode este problema definiendo equals y hashCode en sus módulos, o administrando su composición de modo que cualquier módulo sea de nivel superior o esté instalado en otro módulo (pero nunca ambos).

Consulte este blog archivado o esta respuesta SO para obtener más información sobre la eliminación de duplicaciones de enlaces.

¿Qué hace el método install() de la clase AbstractModule ? ¿Alguien puede explicar me lo? De los documentos que leí del sitio web de Guice, todo lo que pude obtener fue:

Utiliza el módulo dado para configurar más enlaces.

Configurar exactamente qué enlaces? ¿Los enlaces del módulo instalado o los enlaces de la clase que invocaron el método de instalación?