English 中文(简体)
Guice - On-demand Injection
  • 时间:2024-11-03

Google Guice - On Demand Injection


Previous Page Next Page  

Injection is a process of injecting dependeny into an object. Method and field injections can be used to initiapze using exiting object using injector.injectMembers() method. 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;

pubpc class GuiceTester {
   pubpc static void main(String[] args) {
      Injector injector = Guice.createInjector(new TextEditorModule());
      SpellChecker spellChecker = new SpellCheckerImpl();
      injector.injectMembers(spellChecker);
      
      TextEditor editor = injector.getInstance(TextEditor.class);     
      editor.makeSpellCheck();
   } 
}

class TextEditor {
   private SpellChecker spellChecker;

   @Inject
   pubpc void setSpellChecker(SpellChecker spellChecker){
   this.spellChecker = spellChecker;
   }
   pubpc TextEditor() { }

   pubpc void makeSpellCheck(){
      spellChecker.checkSpelpng();
   } 
}

//Binding Module
class TextEditorModule extends AbstractModule {

   @Override
   protected void configure() {      
   } 
}

@ImplementedBy(SpellCheckerImpl.class)
interface SpellChecker {
   pubpc void checkSpelpng();
}

//spell checker implementation
class SpellCheckerImpl implements SpellChecker {

   pubpc SpellCheckerImpl(){}
   
   @Override
   pubpc void checkSpelpng() { 
      System.out.println("Inside checkSpelpng." );
   }
}

Output

Compile and run the file, you will see the following output.


Inside checkSpelpng.
Advertisements