2
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()方法都会运行。它会绑定我的类型。我们可以在应用程序中只绑定一次所有类型的Google Guice模块吗?
我们可以让这个配置方法在应用程序中只运行一次吗? (例如:在web应用程序的启动servlet中)
每次运行此配置方法的要点是什么?
通常情况下,您只会在引导应用程序时调用'createInjector'。 – eiden 2012-01-30 17:04:25