开发手册 欢迎您!
软件开发者资料库

Google Guice - 第一个应用程序

Google Guice First Application - 从简单和简单的步骤学习Google Guice,从基本到高级概念,包括概述,环境设置,第一个应用程序,绑定示例,链接,@ Named,常量,构造函数,内置,即时绑定,绑定,@ provides注释,提供者类,注入示例,构造函数,方法,字段,可选,按需,静态,自动注入,范围,AOP。

让我们创建一个基于控制台的示例应用程序,我们将逐步使用Guice绑定机制演示依赖注入.

步骤1:创建接口

//spell checker interfaceinterface SpellChecker {   public void checkSpelling();}

第2步:创建实施

//spell checker implementationclass SpellCheckerImpl implements SpellChecker {   @Override   public void checkSpelling() {      System.out.println("Inside checkSpelling." );   } }

步骤3:创建绑定模块

//Binding Moduleclass TextEditorModule extends AbstractModule {   @Override   protected void configure() {      bind(SpellChecker.class).to(SpellCheckerImpl.class);   }}

步骤4:创建具有依赖性的类

 class TextEditor {   private SpellChecker spellChecker;      @Inject   public TextEditor(SpellChecker spellChecker) {      this.spellChecker = spellChecker;   }   public void makeSpellCheck() {      spellChecker.checkSpelling();   } }

步骤5:创建注入器

Injector injector = Guice.createInjector(new TextEditorModule());

步骤6:获取完成依赖关系的对象

TextEditor editor = injector.getInstance(TextEditor.class);

步骤7:使用对象

editor.makeSpellCheck() ;

完整示例

创建一个名为GuiceTester的java类.

GuiceTester.java

import com.google.inject.AbstractModule;import com.google.inject.Guice;import com.google.inject.Inject;import com.google.inject.Injector;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 Moduleclass TextEditorModule extends AbstractModule {   @Override      protected void configure() {      bind(SpellChecker.class).to(SpellCheckerImpl.class);   } }//spell checker interfaceinterface SpellChecker {   public void checkSpelling();}//spell checker implementationclass SpellCheckerImpl implements SpellChecker {   @Override      public void checkSpelling() {      System.out.println("Inside checkSpelling." );   } }

输出

编译并运行文件,你会看到以下输出.

Inside checkSpelling.