injection is a process of injecting dependeny into an object. field injection is used to set value object as dependency to the field of an object. see the example below.
example
create a java class named guicetester.
guicetester.java
import com.google.inject.abstractmodule;
import com.google.inject.guice;
import com.google.inject.implementedby;
import com.google.inject.inject;
import com.google.inject.injector;
import com.google.inject.name.named;
import com.google.inject.name.names;
public class guicetester {
public static void main(string[] args) {
injector injector = guice.createinjector(new texteditormodule());
texteditor editor = injector.getinstance(texteditor.class);
editor.makespellcheck();
}
}
class texteditor {
private spellchecker spellchecker;
@inject
public texteditor( spellchecker spellchecker) {
this.spellchecker = spellchecker;
}
public void makespellcheck(){
spellchecker.checkspelling();
}
}
//binding module
class texteditormodule extends abstractmodule {
@override
protected void configure() {
bind(string.class)
.annotatedwith(names.named("jdbc"))
.toinstance("jdbc:mysql://localhost:5326/emp");
}
}
@implementedby(spellcheckerimpl.class)
interface spellchecker {
public void checkspelling();
}
//spell checker implementation
class spellcheckerimpl implements spellchecker {
@inject @named("jdbc")
private string dburl;
public spellcheckerimpl(){}
@override
public void checkspelling() {
system.out.println("inside checkspelling." );
system.out.println(dburl);
}
}
output
compile and run the file, you will see the following output.
inside checkspelling. jdbc:mysql://localhost:5326/emp