2012-01-30 41 views
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中)

每次运行此配置方法的要点是什么?

+1

通常情况下,您只会在引导应用程序时调用'createInjector'。 – eiden 2012-01-30 17:04:25

回答

2

如果您正在开发Web应用程序,请考虑使用ServletModule

相关问题