2
我嘗試使用谷歌吉斯與@注入和@Singleton性能如下:吉斯配置錯誤
我:
- 模塊與空
configure()
方法。 - 接口IFoo
- 一個類Foo(實現IFoo),用@Singleton註解,帶有@Inject註釋的無參數構造函數。這是單註釋的構造函數。
的類,構造函數和接口是公開的,而且我依然收到以下錯誤:
No implementation for IFoo was bound.
我嘗試使用谷歌吉斯與@注入和@Singleton性能如下:吉斯配置錯誤
我:
configure()
方法。的類,構造函數和接口是公開的,而且我依然收到以下錯誤:
No implementation for IFoo was bound.
你的意思是你這樣做的時候錯誤?
IFoo foo = injector.getInstance(IFoo.class);
那麼很明顯。如果configure()
爲空,那麼guice應該知道什麼類可以滿足IFoo
的依賴關係。
只需在configure()
方法中添加它,它應該可以工作。現在,Guice知道用什麼類來滿足依賴關係。
bind(IFoo.class).to(Foo.class);
如果你不想在模塊中配置此,你可以註釋界面。例如
@ImplementedBy(Foo.class)
public interface IFoo {
...
}
的@Singleton
註釋只告訴吉斯返回相同的實例類(Singleton模式)每次該類的請求通過Injector.getInstance()
製成的,而不是每次創建一個新的實例。但請注意,這僅僅是每個Injector的Singleton,而不是每個Classloader。
Bar上的@Singleton註釋不告訴Guiced它是IBar的具體實現嗎? 我不喜歡有一個大模塊() - 我更喜歡批註類。用Guist怎麼做到這一點? – ripper234 2009-07-02 13:56:50