У меня есть эта проблема.Связанная с Guice привязка по сравнению с методом @Provides
Рассмотрим меня есть определения классов, как:
public interface ABCInterface
{
}
и его реализация:
public class ABCImpl
{
@Inject
private XYZ xyz;
}
Когда Guice Config, как это:
public class MasterConfig extends AbstractModule
{
@Override
protected void configure()
{
// TODO Auto-generated method stub
bind(ABCInterface.class)
.to(ABCImpl.class);
}
}
и запустить его, то все отлично работает, и XYZ вводится в него.
Но когда я использую методы поставщика, как это:
public class MasterConfig extends AbstractModule {
@Override
protected void configure() {
// TODO Auto-generated method stub
}
@Provides
public ABCInterface abc() {
return new ABCImpl();
}
}
Тогда, в этом случае, я получаю исключения нулевого указателя при попытке использовать впрыскивается XYZ, потому что объект остается пустым. Я подозреваю, что это ядро, я возвращаю новый объект ABCImpl и, следовательно, Guice не может построить граф зависимостей. Пожалуйста, поправьте меня, если я ошибаюсь здесь?
Может кто-нибудь предложить, как написать метод провайдера, чтобы все было введено правильно, как это происходит, когда я упоминаю в методе configure.
Awesome, спасибо :) –