Guice系列之用户指南(一)

简介:

原文地址:https://code.google.com/p/google-guice/wiki/LinkedBindings

LinkedBindings(链接绑定):在类型上绑定它的实现。

贴代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public interface HelloService {
     void sayHello();
}
 
public class HelloServiceImpl implements HelloService {
 
     @Override
     public void sayHello() {
         System.out.println( "hello" );
     }
 
}
 
import com.google.inject.AbstractModule;
 
public class HelloServiceModule extends AbstractModule {
 
     @Override
     protected void configure() {
         bind(HelloService. class ).to(HelloServiceImpl. class );
//      bind(HelloServiceImpl.class).to(SubHelloServiceImpl.class);
     }
 
}
 
public class Test {
     public static void main(String[] args) {
         Injector injector = Guice.createInjector( new HelloServiceModule());
         HelloService helloService = injector.getInstance(HelloService. class );
         System.out.println(helloService.getClass().getSimpleName());
         helloService.sayHello();
     }
}

执行结果:
HelloServiceImpl
hello

还可以写成绑定链,此时再添加个子类,

1
2
3
4
5
6
7
8
public class SubHelloServiceImpl extends HelloServiceImpl {
 
     @Override
     public void sayHello() {
         System.out.println( "sub hello" );
     }
 
}

然后,HelloServiceModule里注释打开。

执行结果:
SubHelloServiceImpl
sub hello

在写成绑定链时,injector返回该类型最终的实现类。

练习代码在这里


相关文章
|
Java 容器
mvc02
mvc02
73 0
|
6月前
|
数据库连接 测试技术 Windows
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
|
XML JSON 中间件
中间件数据格式JSON与XML之间的转换
中间件数据格式JSON与XML之间的转换
230 3
|
域名解析 网络协议 Linux
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
TCP/IP协议及配置、IP地址、子网掩码、网关地址、DNS与DHCP介绍
1225 1
|
12月前
|
安全
遭遇流氓软件 CPUSH
遭遇流氓软件 CPUSH
|
机器学习/深度学习 人工智能 自然语言处理
上海数字大脑研究院首次发布《2022上半年度人工智能行业报告》,多层面深度分析全球AI发展
上海数字大脑研究院首次发布《2022上半年度人工智能行业报告》,多层面深度分析全球AI发展
311 0
|
弹性计算 应用服务中间件 Linux
学生体验ECS服务器报告
学生体验ECS服务器报告
160 0
|
SQL 监控 安全
企业网站遭遇黑客攻击 如何快速查找漏洞原因
好多企业网站遭遇黑客攻击,像黑客入侵在互联网只要有数据网络,就能使用数据网络远程操作目标的笔记本电脑、网络服务器、企业网站,从而任意地读取或篡改目标的重要数据,又又或者使用目标系统软件上的功能模块,比如对手机的麦克风开展监听,开启对方摄像头开展监控,使用已经被入侵的设备计算能力开展挖矿从而得到虚拟货币,使用目标设备的网络带宽能力发动CC并发攻击方式其他人等等。又或者是破解了一个数据库服务器的密码,进去查看敏感数据信息、远程操作门禁/红绿灯。以上这种都属于经典的黑客入侵场景。
290 0
企业网站遭遇黑客攻击 如何快速查找漏洞原因
加州自动驾驶路测规则“生变”,轻型运输车辆或将被纳入允许范围
当前,自动驾驶轻型运输车辆还不被允许在加州进行路测。
258 0