依赖注入 guice 实例
所属分类 guice
浏览量 754
构造函数注入
字段注入会
方法注入
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 操作