Guice 简明教程

Google Guice - Inbuilt Bindings

Guice 为 java.util.logging.Logger 类提供内置绑定。Logger 的名称会自动设置为 Logger 被注入到的类的名称。请参见以下示例。

Guice provides inbuilt binding for java.util.logging.Logger class. Logger’s name is automatically set to the name of the class into which the Logger is injected. See the example below.

Example

创建名为 GuiceTester 的 Java 类。

Create a java class named GuiceTester.

GuiceTester.java

import java.util.logging.Logger;

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 Logger logger;

   @Inject
   public TextEditor( Logger logger) {
      this.logger = logger;
   }

   public void makeSpellCheck(){
      logger.info("In TextEditor.makeSpellCheck() method");
   }
}

//Binding Module
class TextEditorModule extends AbstractModule {

   @Override
   protected void configure() {
   }
}

Output

编译运行该文件,您会看到以下输出内容。

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

Dec 20, 2017 12:51:05 PM TextEditor makeSpellCheck
INFO: In TextEditor.makeSpellCheck() method