Şu satırı dahil ederiz.
import com.google.inject.AbstractModule;
Metodların karşılığı şöyle
Guice DSL syntax Mental modelbind(key).toInstance(value) map.put(key, () -> value) (instance binding)bind(key).toProvider(provider) map.put(key, provider) (provider binding)bind(key).to(anotherKey) map.put(key, map.get(anotherKey)) (linked binding)@Provides Foo provideFoo() {...} map.put(Key.get(Foo.class), module::provideFoo) (provider (method binding)
bind metodu
Örnek - to
Şöyle yaparız. Burada her seferinde yeni bir DefaultCommunicatorImpl yaratılır
public class BasicModule extends AbstractModule { @Override protected void configure() { bind(Communicator.class).to(DefaultCommunicatorImpl.class); } }
Örnek - toInstance
Şöyle yaparız. Burada her seferinde aynı DefaultCommunicatorImpl kullanılır
public class BasicModule extends AbstractModule {
DefaultCommunicatorImpl communicator = ...;
@Override protected void configure() { bind(Communicator.class).to(communicator);
} }
Örnek - toInstance
Şöyle yaparız. Burada her seferinde yeni bir Communication yaratılır
public class BasicModule extends AbstractModule {
@Override protected void configure() {
bind(Communication.class).toInstance(new Communication(true)); } }
Örnek - toConstructor
Şöyle yaparız. Burada her seferinde yeni bir Communication yaratılır ve Boolean alan constructor'ı kullanılır.
public class BasicModule extends AbstractModule {
@Override protected void configure() { bind(Boolean.class).toInstance(true); bind(Communication.class).toConstructor( Communication.class.getConstructor(Boolean.TYPE)); } }
install metodu
Ortak olan şeylerin bir AbstractModule altında toplanabilmesini sağlar.
Örnek
Şöyle yaparız
class TextEditorModule extends AbstractModule {
@Override protected void configure() { install (new MyCommonModule(); } }
Hiç yorum yok:
Yorum Gönder