Как работают встроенные привязки Google Guice? - PullRequest
1 голос
/ 21 декабря 2009

Я попробовал Google Guice в первый раз, и он мне очень понравился. Но когда я дошел до части Встроенные привязки , я не понимаю примеры.

Для меня это выглядит так, будто я могу использовать это для регистрации как перехватчик, но я не знаю как.

Может ли кто-нибудь из вас объяснить этот тип привязки и как я могу его использовать? А может (если это возможно) использовать его для регистрации?

Ответы [ 2 ]

2 голосов
/ 15 января 2010

В документации указано, что звонок bind(Logger.class).to(...) для вас уже сделан. Таким образом, вам не нужно вызывать метод связывания. Вместо этого вы можете ввести его напрямую, как если бы вы уже вызвали bind:

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);

Если вам нужно переопределить регистратор, вам придется использовать этот метод .

1 голос
/ 21 декабря 2009

Все, на что вы указываете, показывает, что вам не нужно предоставлять привязку для Logger.class в коде, таком как пример. Так как в 99% случаев это

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

Guice предоставит вам этот регистратор для удобства. Если вам нужны другие регистраторы (т.е. не основанные на вводимом классе), вы можете указать собственную привязку.

...