Démarrer avec Guice
Sur cette page
Configuration d’un “Hello, world!” Exemple
Guice est une bibliothèque Java. Pour l’utiliser, vous devez ajouter un [fichier JAR][1] dans le chemin de classe de votre projet Java.
Exemples de cours
Vous trouverez ci-dessous plusieurs classes pour un “Hello, world!” Exemple.
Une interface d’un bonjour “service”:
public interface HelloWorldService {
public void sayHello();
}
La mise en place du service :
public class HelloWorldServiceImpl implements HelloWorldService {
@Override
public void sayHello() {
System.out.println("Hello, world!");
}
}
Un module de nommage Guice. Il est nécessaire d’indiquer à Guice que HelloWorldServiceImpl
sera injecté là où un service hello est nécessaire.
import com.google.inject.AbstractModule;
public class HelloWorldModule extends AbstractModule {
protected void configure() {
bind(HelloWorldService.class).to(HelloWorldServiceImpl.class);
}
}
Une classe principale où l’injection réelle d’un service hello a lieu :
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
}
}
Exécuter avec Gradle
Pour configurer et exécuter rapidement avec Gradle 2.2.+ et Java 8 :
-
Installez Gradle s’il n’est pas déjà installé
-
Créez un répertoire vide et naviguez-y avec un shell compatible gradle
-
Créez un projet Java vide :
gradle init --type java-library
-
Dans le
build.gradle
généré automatiquement :
-
remplacez
apply plugin: 'java'
parapply plugin: 'application'
-
ajouter la ligne suivante
mainClassName = 'Main'
-
dans la section dépendances ajouter une dépendance à une version de guice, par exemple :
dependencies { ... compile group: 'com.google.inject', name: 'guice', version: '4.1.0' ... }
-
Ajoutez les classes ci-dessus dans le package par défaut dans
src/main/java
, chacune dans son propre fichier -
Courez et profitez
..> gradlew run :compileJava :processResources UP-TO-DATE :classes :run Hello, world! BUILD SUCCESSFUL Total time: 3.595 secs
Exécuter avec Maven
Pour configurer et exécuter rapidement avec Maven 3+ et Java 8 :
-
Installez maven s’il n’est pas déjà installé
-
Créez un répertoire vide et naviguez-y avec un shell maven activé
-
Créez un projet Java vide :
mvn archetype:generate -DgroupId=com.example -DartifactId=guice -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
-
Basculez vers le sous-répertoire
guice
-
Dans le
pom.xml
généré automatiquement :
-
dans l’élément
dependencies
ajoutez une dépendance à guice :com.google.inject guice 4.1.0 -
ajoutez le plugin suivant à votre projet (permet un test facile)
..... org.codehaus.mojo exec-maven-plugin 1.5.0 Main
-
Ajoutez les classes ci-dessus dans le package par défaut dans
src/main/java
, chacune dans son propre fichier -
Courez et profitez
…\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] ————————————————————————
[1] : http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22com.google.inject%22%20AND%20a%3A%22guice%22