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

ProviderBindings(提供者绑定):就是实现Provider接口来生产依赖的对象。

贴代码:

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

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

public interface Animal {

void say();

}

public class Cat implements Animal {

String name;

public void setName(String name) {

this.name = name;

}

@Override

public void say() {

System.out.println("i am a cat");

}

@Override

public String toString() {

return "name==>" + this.name;

}

}

import com.google.inject.AbstractModule;

public class AnimalModule extends AbstractModule {

@Override

protected void configure() {

bind(String.class).toInstance("Tom");

bind(Animal.class).toProvider(AnimalProvider.class);

System.out.println("run configure");

}

}

import com.google.inject.Inject;

import com.google.inject.Provider;

public class AnimalProvider implements Provider<Animal>{

String name;

@Inject

public AnimalProvider(String name) {

this.name = name;

}

public Animal get() {

Cat cat = new Cat();

cat.setName(name);

System.out.println("run Provider.get()");

return cat;

}

}

import com.google.inject.Guice;

import com.google.inject.Injector;

public class Test {

public static void main(String[] args) {

Injector injector = Guice.createInjector(new AnimalModule());

AnimalProvider provider = injector.getInstance(AnimalProvider.class);

Animal cat = provider.get();

System.out.println(cat);

cat.say();

}

}

执行结果:
run AnimalModule.configure()
run Provider.get()
name==>Tom
i am a cat

Guice系列之用户指南(五)相关推荐

  1. Guice系列之用户指南(十)

    原文地址:https://code.google.com/p/google-guice/wiki/Scopes Scopes:作用域. 默认情况下,Guice每次在调用时都会返回一个新的实例,这种行为 ...

  2. Guice系列之用户指南(七)

    原文地址:https://code.google.com/p/google-guice/wiki/ToConstructorBindings Constructor Bindings(构造器绑定):在 ...

  3. Guice系列之用户指南(八)

    原文地址:https://code.google.com/p/google-guice/wiki/BuiltInBindings Built-in Bindings(内建的绑定):即时在injecto ...

  4. [转载]Guice 1.0 用户指南

    http://code.google.com/p/google-guice/ 用 Guice 写 Java Guice 1.0 用户指南 (20070326 王咏刚 译自:http://docs.go ...

  5. Guice 1.0 用户指南

    http://code.google.com/p/google-guice/ 用 Guice 写 Java Guice 1.0 用户指南 (20070326 王咏刚 译自:http://docs.go ...

  6. Logos系列FPGA PCB设计用户指南

    logos PCB 用户指南 是 logos 系列 FPGA 芯片 的 PCB 推荐 设计 说明 文件 . 用户在分配完FPGA 管脚后,一定要跑一遍 工程文件确认管脚定义是否合理. logos系列 ...

  7. QCC304x系列开发教程(实战篇) 之5.3 QCC3040之QACT用户指南

    高通蓝牙耳机QCC304x开发详解汇总(持续更新中) 查看全部文章地址QCC304x系列开发教程(实战篇)  之5.3 QCC3040之QACT用户指南_心跳包的博客-CSDN博客 版权归作者所有,未 ...

  8. Gradle 2.0 用户指南翻译——第五十六章. 多项目构建

    本文禁止w3cschool转载! 翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc . 本文翻译所在分支:https://github.com/m ...

  9. Gradle 1.12用户指南翻译——第五十六章. 多项目构建

    其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://g ...

最新文章

  1. js 闭包及其相关知识点理解
  2. [NOTE] RESTful架构
  3. 一个法国摄影师在中国
  4. 统计相关系数r与r2的区别_什么是相关系数? 统计解释中的r值
  5. 我想问一下男生,一个女生那么真诚热情又卑微的喜欢你,你们是怎么做到视而不见的呢?
  6. Python与Memcached交互
  7. Centos和Ubuntu下定制普通用户访问权限
  8. 嵌入式系统开发-麦子学院(9)——arm基础知识
  9. 诺基亚n8系统更新服务器模式,新年新版本 诺基亚N8最新固件PR1.1亮相
  10. 一款非常优秀的内存数据库——lmdb
  11. 根据 轮播图背景色 自动填充剩余背景色的 走马灯
  12. 如果图G=V,E是哈密尔顿图,则它必然具备下述性质
  13. 文化 宝藏 文物 古文
  14. Jzoj4896 兔子
  15. Unity Hub那些事
  16. web前端源码笔记_canvas【爱创课堂专业前端培训】
  17. 对于跨境电商系统的介绍
  18. Sobel算子的边缘检测实现
  19. 基于python的多因子分析
  20. CentOS系统安装haproxy

热门文章

  1. centos7.3修改mysql密码_Centos7.3下mysql5.7.18安装并修改初始密码的方法
  2. Caffe + windows + python3.5安装
  3. 每日一问:你了解 Java 虚拟机结构么?
  4. 在Eclipse中查看Javadoc文档
  5. 关于前后端分离我的理解
  6. 当你用钥匙开不开门时
  7. 创业互联网公司如何搭建自己的技术框架
  8. OpenCV 3.0又一个革命性版本,它会带来哪些改变
  9. 背景建模之单高斯实现
  10. PCANet --- 用于图像分类的深度学习基准