Looking for guice Answers? Try Ask4KnowledgeBase
Looking for guice Keywords? Try Ask4Keywords

guiceEmpezando con guice


Observaciones

Esta sección proporciona una descripción general de qué es una guía y por qué un desarrollador puede querer usarla.

También debe mencionar cualquier tema grande dentro de la guía, y vincular a los temas relacionados. Dado que la Documentación para Guice es nueva, es posible que deba crear versiones iniciales de esos temas relacionados.

Configuración de un '¡Hola mundo!' ejemplo

Guice es una biblioteca de Java. Para usarlo, debe agregar un archivo JAR en la ruta de clase de su proyecto Java.

Clases de muestra

A continuación hay varias clases para un "¡Hola mundo!" ejemplo.

Una interfaz de un "servicio" hola:

public interface HelloWorldService {
    public void sayHello();
}
 

La implementación del servicio:

public class HelloWorldServiceImpl implements HelloWorldService {
    @Override
    public void sayHello() {
        System.out.println("Hello, world!");
    }
}
 

Un módulo de nombres de Guice. Es necesario para indicar a Guice que HelloWorldServiceImpl se inyectará donde se necesite un servicio de saludo.

import com.google.inject.AbstractModule;

public class HelloWorldModule extends AbstractModule {
    protected void configure() {
        bind(HelloWorldService.class).to(HelloWorldServiceImpl.class);
    }
}
 

Una clase principal donde se lleva a cabo la inyección real de un servicio de saludo:

import javax.inject.Inject;

import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;

public class Main {

    @Inject
    private HelloWorldService service;//hello service
    
    public static void main(String[] args) {
        
        Main main = new Main();
        
        Module module = new HelloWorldModule();
        Injector injector = Guice.createInjector(module);
        injector.injectMembers(main);//injects the implementation of the service
        
        main.testGuice();
    }

    public void testGuice()
    {
        service.sayHello();//usage of the service
    }
}
 

Correr con gradle

Para una rápida configuración y ejecución con Gradle 2.2. + Y Java 8:

  1. Instala Gradle si aún no está instalado

  2. Cree un directorio vacío y navegue en él con un shell habilitado para gradle

  3. Crea un proyecto java vacío:

    gradle init --type java-library

  1. En el build.gradle generado automáticamente:
  • cambiar apply plugin: 'java' para apply plugin: 'application'

  • agrega la siguiente linea

    mainClassName = 'Main'

  • en la sección de dependencias agregue una dependencia a una versión de guice, por ejemplo:

    dependencies {
      ...
      compile group: 'com.google.inject', name: 'guice', version: '4.1.0'
      ...
    }
     
  1. Agregue las clases que se muestran arriba en el paquete predeterminado en src/main/java , cada uno en su propio archivo

  2. Corre y disfruta

    ..> gradlew run
        :compileJava
        :processResources UP-TO-DATE
        :classes
        :run
        Hello, world!
    
        BUILD SUCCESSFUL
    
        Total time: 3.595 secs
     

Correr con maven

Para una rápida configuración y ejecución con Maven 3+ y Java 8:

  1. Instalar maven si aún no está instalado

  2. Cree un directorio vacío y navegue en él con un shell habilitado para maven

  3. Crea un proyecto java vacío:

    mvn archetype:generate -DgroupId=com.example -DartifactId=guice -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

  4. Cambiar al subdirectorio guice

  5. En el pom.xml generado automáticamente:

  • en el elemento dependencies agregue una dependencia a guice:
<dependency>
   <groupId>com.google.inject</groupId>
   <artifactId>guice</artifactId>
   <version>4.1.0</version>
</dependency>
 
  • agrega el siguiente complemento a tu proyecto (permite una ejecución de prueba fácil)
<project>
  .....
  <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.5.0</version>
                <configuration>
                    <mainClass>Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
 
  1. Agregue las clases que se muestran arriba en el paquete predeterminado en src/main/java , cada uno en su propio archivo
  2. Corre y disfruta
...\guice>mvn exec:java
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building guice 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ guice ---
Hello, world!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.800 s
[INFO] Finished at: 2016-10-09T11:44:41+03:00
[INFO] Final Memory: 10M/309M
[INFO] ------------------------------------------------------------------------