Я пользуюсь google-guice уже пару дней, и меня это все больше впечатляет.
Я создал MemberInjector для простой интеграции каркаса ведения журнала SLF4J, просто с дополнительной аннотацией. Это означает, что вместо использования всегда долгосрочного:
private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
Я сейчас просто использую:
@Log
Logger LOG;
Это действительно здорово, НО:
Я также использую метод-инъекцию как своего рода начальную функцию в том же классе, и если я получу доступ к экземпляру LOG, это вызовет NPE! Потому что он еще не введен.
@Inject
public void start() {
//And here is the problem...
LOG.info("in start") //causes NPE, cause LOG is not injected yet
}
Если я использую экземпляр LOG в другом (не внедренном) методе, он работает отлично,
Есть ли способ изменить порядок впрыска или можно указать подсказку, чтобы вводить MemberInjector ранее? Потому что я действительно хотел бы использовать ведение журнала также в части внедрения метода.
Спасибо за любую подсказку.