代码之家  ›  专栏  ›  技术社区  ›  lony

GoogleGuice的内置绑定是如何工作的?

  •  1
  • lony  · 技术社区  · 16 年前

    我第一次尝试Google Guice,发现它很不错。 Built-in Bindings 我不理解这些例子。

    对我来说,它看起来可以像拦截器一样用于日志记录,但我不知道如何使用它。

    2 回复  |  直到 16 年前
        1
  •  2
  •   Kaleb Pederson    16 年前

    文档表明 bind(Logger.class).to(...)

    class DoSomething {
        private final Logger logger;
        @Inject public DoSomething(Logger logger) {
            this.logger = logger;
        }
    }
    

    或者,您可以从喷油器获取:

    /* even without specifying modules, logger is present */
    Injector injector = Guice.createInjector();
    Logger logger = injector.getInstance(Logger.class);
    

    use this method .

        2
  •  1
  •   Dave W. Smith    16 年前

    您所指的所有示例都表明,您不必在示例中这样的代码中为Logger.class提供绑定。因为99%的情况是

    Logger logger = Logger.getLogger(ConsoleTransactionLog.class);
    

    Guice将为您提供该记录器作为一种方便。如果您需要不同的记录器(即,一个不基于被注入的类的记录器),您可以提供自己的绑定。