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方法在应用程序中仅运行一次吗? (例如:在网络应用的启动Servlet中)

每次运行此配置方法有什么意义?

最佳答案

如果要开发Web应用程序,请考虑使用ServletModule

关于java - 我们能否在应用程序中仅绑定(bind)一次所有类型的Google Guice模块?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9064331/

10-11 19:24