Comenzando con guice

Configuración de un ‘¡Hola, mundo!’ ejemplo

Guice es una biblioteca de Java. Para usarlo, debe agregar un [archivo JAR] 1 en el classpath de su proyecto Java.

Clases de muestra

A continuación hay varias clases para un “¡Hola, mundo!” ejemplo.

Una interfaz de un “servicio” de saludo:

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 indicarle 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 tiene lugar 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
    }
}

Ejecutar con Gradle

Para configurar y ejecutar rápidamente con Gradle 2.2.+ y Java 8:

  1. Instale gradle si aún no está instalado

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

  3. Cree un proyecto java vacío:

    gradle init --type java-library

  4. En el build.gradle generado automáticamente:

  • cambiar aplicar complemento: 'java' a aplicar complemento: 'aplicación'

  • agregar la siguiente línea

    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 una 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
    

Corre con Maven

Para configurar y ejecutar rápidamente con Maven 3+ y Java 8:

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

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

  3. Cree un proyecto java vacío:

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

  4. Cambia al subdirectorio guice

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

  • en el elemento dependencies añade una dependencia a guice:

    com.google.inject guice 4.1.0
  • agregue el siguiente complemento a su proyecto (permite una ejecución de prueba fácil)

    ..... org.codehaus.mojo exec-maven-plugin 1.5.0 Main
  1. Agregue las clases que se muestran arriba en el paquete predeterminado en src/main/java, cada una 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] ————————————————————————