Guice的应用

Guice DI 容器实战
在工作中关于IoC应用最多的因该是spring容器。
听说google退出了更轻便DI容器---Guice!
看看Guice是如何实现注入的!

1,首先定义一个简单的接口以及接口的实现:

public interface MyService ...{
void myMethod();
}

public class MyServiceImpl implements MyService ...{
public void myMethod() ...{
System.out.println("Hello,LINKEN!");
}
}



import com.google.inject.Inject;
public class Client ...{
MyService service;
@Inject //告诉容器,这里的service对象的引用,需要进行注入
void setService(MyService service) ...{ //这里的方法名字可以任意定义
this.service = service;
}
public void myMethod() ...{
service.myMethod();
}
}



这里除了加了一个@Inject,和Spring的配置没有任何的区别。
@Inject,是表示对容器说,这里的service需要注射,等到运行的时候,容器会拿来一个实例给service,完成注射的过程。

2,定义Guice的Module文件 告诉容器如何进行注入
import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.Scopes;

public class MyModule implements Module ...{
public void configure(Binder binder) ...{ binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);
// 这句代码的意思是说:运行时动态的将MyServiceImpl对象赋给MyService定义的对象,而且这个对象是单例的。
}
}


3,测试类:
import com.google.inject.Guice;
import com.google.inject.Injector;

public class Test ...{

public static void main(String[] args) ...{
MyModule module = new MyModule();// 定义注射规则
Injector injector = Guice.createInjector(module);// 根据注射规则,生成注射者
Client client = new Client();
injector.injectMembers(client);// 注射者将需要注射的bean,按照规则,把client这个客户端进行注射
client.myMethod();
}
}


输出的结果那就是:Hello,LINKEN!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值