原文地址:https://code.google.com/p/google-guice/wiki/InstanceBindings
InstanceBindings(实例绑定):基本类型直接绑定值。
贴代码:
import com.google.inject.Inject; import com.google.inject.name.Named; public class Configure { String jdbcUrl; int loginTimeout; @Inject public Configure(@Named("JDBC URL") String jdbcUrl, @Named("login timeout seconds") int loginTimeout) { this.jdbcUrl = jdbcUrl; this.loginTimeout = loginTimeout; } @Override public String toString() { return "jdbcUrl==>" + this.jdbcUrl + "\tloginTimeout==>" + this.loginTimeout + " seconds"; } } import com.google.inject.AbstractModule; import com.google.inject.name.Names; public class ConfigureModule extends AbstractModule { @Override protected void configure() { bind(String.class) .annotatedWith(Names.named("JDBC URL")) .toInstance("jdbc:mysql://localhost/pizza"); bind(Integer.class) .annotatedWith(Names.named("login timeout seconds")) .toInstance(10); } } import com.google.inject.Guice; import com.google.inject.Injector; public class Test { public static void main(String[] args) { Injector injector = Guice.createInjector(new ConfigureModule()); Configure configure = injector.getInstance(Configure.class); System.out.println(configure); } }
执行结果:
jdbcUrl==>jdbc:mysql://localhost/pizza loginTimeout==>10 seconds