3
我有這個問題。Guice鏈接綁定與@Provides方法
考慮我有類的定義,如:
public interface ABCInterface
{
}
及其實施:
public class ABCImpl
{
@Inject
private XYZ xyz;
}
當吉斯配置是這樣的:
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不能構建一個依賴關係圖。如果我在這裏錯了,請糾正我?
任何人都可以建議,如何編寫Provider方法,以便在配置方法中提到所有東西都可以正常注入。
太棒了,謝謝:) –