Guice 与实例化
class Test1{
public Test1(Long id) {
this.id= id;
}
}
class Test2{
Long id = 1L;
public void ceshi() {
Test1 t = new Test1(id);//实例化并初始化构造函数
但是如果Test1这个类里面用了guice的Inject的相关知识,这样是访问不到的
}
}
class Test2{
@Inject
Injector injetor;
Long id = 1L;
public void ceshi() {
Test1 t = new Test1(id);
injetor.injectMembers(t);//这个实例可以获取到所有guice里面的东西;
}
}
guice有两种实例化方法
//生成单例,用于注射(Inject)
protected void configure() {
bind(PgadminService.class).asEagerSingleton();
bind(PgadminDAO.class).to(PgadminDAOJDBCImpl.class).asEagerSingleton();
}
直接@Inject,
@Inject
private PgadminDAO pgadmindao;
2. 在构建方法中声明
@Inject
final private PgadminDAO pgadmindao;//final关键字,意味着必须在构建方法中声明
@Inject //不需要new来实例化这个构造方法了
public PgadminService(PgadminDAO pgadmindao) {
this.pgadmindao = pgadmindao;
}
软件开发外包,网站构建,赵洗能软件外包服务平台