首页  

依赖注入 guice 实例     所属分类 guice 浏览量 584
构造函数注入 
字段注入会
方法注入

Provider注入
interface Provider< T > {
  T get();
}
懒加载 ,在需要时通过Provider获取

命名注入 解决冲突
@Inject @Named("dbSpec") private String dbSpec;

注入和绑定 分开
一般继承AbstractModule,实现 configure 方法 进行绑定

类名绑定
实例绑定 Instance Bindings
连接绑定 Linked Bindings
Provider绑定 Provider Bindings
命名绑定 Binding Annotations
泛型绑定
集合绑定



Injector injector = Guice.createInjector(new XxxModule());
XxxService xxxService = injector.getInstance(XxxService.class);



import com.google.inject.AbstractModule; public class HelloModule extends AbstractModule{ @Override protected void configure() { bind(ServiceA.class).to(ServiceAImpl.class); bind(ServiceB.class).to(ServiceBImpl.class); // bind(Hello.class).to(Hello.class); } }
import javax.inject.Inject; import javax.inject.Singleton; import com.google.inject.Guice; import com.google.inject.Injector; @Singleton public class Hello { @Inject private ServiceA serviceA; @Inject private ServiceB serviceB; public static void main(String[] args) throws Exception { System.out.println("hello,guice"); Injector injector = Guice.createInjector(new HelloModule()); Hello hello = injector.getInstance(Hello.class); hello.hello(); } public void hello() { serviceA.hello(); serviceB.hello(); } }
完整代码 https://gitee.com/dyyx/hellocode/tree/master/demo/guicedemo

上一篇     下一篇
play框架日志

play框架依赖注入

play 数据库访问

scala 多行字符串

scala 元组和多重赋值

play json 操作