博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Guice系列之用户指南(一)
阅读量:5961 次
发布时间:2019-06-19

本文共 1211 字,大约阅读时间需要 4 分钟。

原文地址: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返回该类型最终的实现类。

转载地址:http://cgyax.baihongyu.com/

你可能感兴趣的文章
在react或vue中,for循环用Index作为key值是好还是坏呢?
查看>>
2014.10.1 Form中显示pdf文件
查看>>
NERDTree 快捷键辑录
查看>>
Python数据分析Numpy库方法简介(一)
查看>>
javaWeb:相关监听方法汇总
查看>>
JSP 实现 之 读取数据库显示图片
查看>>
JS——特效秀
查看>>
Beta冲刺——day6
查看>>
前端:CheckBox事件函数js
查看>>
Comet OJ - Contest #3 题解
查看>>
[网络流24题-9]试题库问题
查看>>
jquery选择器详解
查看>>
C# 保留2位小数
查看>>
使用xshell远程连接Linux
查看>>
杭电ACM1007
查看>>
faster-RCNN台标检测
查看>>
Unix环境高级编程 centos中配置apue编译环境
查看>>
运算符
查看>>
数据结构之各排序算法
查看>>
网页分帧操作<frameset>,<iframe>标签
查看>>