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

Google Guice - 方法注入

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

注入是将依赖注入对象的过程.方法注入用于将值对象设置为对象的依赖项.请参阅下面的示例.

示例

创建名为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 Moduleclass 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 implementationclass SpellCheckerImpl implements SpellChecker {   private String dbUrl;   public SpellCheckerImpl(){}      @Inject    public void setDbUrl(@Named("JDBC") String dbUrl) {      this.dbUrl = dbUrl;   }   @Override   public void checkSpelling() {       System.out.println("Inside checkSpelling." );      System.out.println(dbUrl);    }}

输出

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

Inside checkSpelling.jdbc:mysql://localhost:5326/emp