Можем ли мы связать все типы модулей Google Guice только один раз в приложении? - PullRequest
2 голосов
/ 30 января 2012
public interface Tweeter {
 public void sendTweet(String message);
}

public class SmsTweeter implements Tweeter {
@Override
public void sendTweet(String message) {
    System.out.println("You SMS tweet: "+message);
}
}

import com.google.inject.AbstractModule;

public class TweetModule extends AbstractModule{

@Override
protected void configure() {
    bind(Tweeter.class).to(SmsTweeter.class);       
}
}

import com.google.inject.Guice;
import com.google.inject.Injector;

public class TestTweetClient {
public static void main(String[] args) {
    Injector injector = Guice.createInjector(new TweetModule());
    Tweeter tweeter = injector.getInstance(Tweeter.class);
    tweeter.sendTweet("Hi there");
}
}

Всякий раз, когда я буду вызывать Guice.createInjector, будет запускаться метод configure () моего модуля. И это свяжет мои типы.

Можем ли мы заставить этот метод configure запускаться в приложении только один раз? (например: в сервлете запуска веб-приложения)

Какой смысл каждый раз запускать этот метод настройки?

1 Ответ

2 голосов
/ 30 января 2012

Рассмотрите возможность использования ServletModule , если вы разрабатываете веб-приложение.

...