Framework Google Guice - Tensho97/Aprende-a-Aprender GitHub Wiki

Google Guice es un framework de inyección de dependencias, que a diferencia de Spring, se usa en la versión 5.0 o superior de Java. Debido a esto, aprovecha los beneficios de los Generics y las Anotaciones, permitiendo que el código sea tipado.

VENTAJAS DE USAR GOOGLE GUICE FRENTE SPRING

Ambos son dos framework muy potentes actualmente. Los dos abarcan los conceptos de la inyección de dependencias, pero cada uno tiene su forma de implementarlos.

  • Inyección a través de Setter vs Inyección a través de constructor

Spring recomienda evitar usar el "final" en las dependencias y usar la inyección en los setters. Esto elimina la inmutabilidad de las clases a medida que las dependencias van cambiando y se cambian en tiempo de ejecución. Guide en cambio, recomienda la inyección mediante el constructor sobre la inyección mediante los setters, aunque ambas son soportadas. En Guide está recomendado usar "final", lo que hace a las clases más estables.

  • XML Binding vs Type Checked Bindings

Spring usa el XML para definir los bindings entre implementaciones. Esto conlleva problemas cuando un objeto que no está correctamente tipado se le pasa a una interface, lo que sólo se ve en tiempo de ejecución.

Guice usa clases de Java, a las que llama Módulos, para definir los bindings. Guice comprueba los tipos en tiempo de compilación y detecta los bindings inválidos.

  • Evitando Inyecciones nulas

Cuando la anotación @Nonnull no se usa, Spring permite la inyeccion de un nulo como una dependencia. También permite unir una interface a un null. Guice no permite inyecciones nulas. Cuando un binding es nulo, fallará, así que lo podremos capturar con una excepción antes de que se rompa el programa.

  • Peso pesado vs Peso ligero

Spring es un framework pesado, que fue creado en los primeros días de J2EE. Además, se le han ido implementando nuevas características como las Annotations, los Generics o Java Config.

Guide fue creado a partir de Java 5, con lo cual ya tenía esas herramientas y se hizo más ligero.



Autora: Vanesa