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

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

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

Injections(各种注入):常见的有构造函数注入,set方法注入,成员变量注入,前面几篇提到过,就说说没有提到的。

Optional Injections(可选择的注入):就是在注入时可以选择使用注入,通过@Inject(optional=true)实现。

1

2

3

4

5

6

7

8

9

public class PayPalCreditCardProcessor implements CreditCardProcessor {

private static final String SANDBOX_API_KEY = "development-use-only";

private String apiKey = SANDBOX_API_KEY;

@Inject(optional=true)

public void setApiKey(@Named("PayPal API key") String apiKey) {

this.apiKey = apiKey;

}

或者是在成员变量上:

1

@Inject(optional=true) Date launchDate;

On-demand Injection(按需注入):方法注入或者变量注入可能用在初始化一个已经存在的实例。你可以用Injector.injectMembers API:

1

2

3

4

5

public static void main(String[] args) {

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

CreditCardProcessor creditCardProcessor = new PayPalCreditCardProcessor();

injector.injectMembers(creditCardProcessor);

Static Injections(静态注入):不推荐,依赖关系不透明和受类的全局状态影响。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

@Override public void configure() {

requestStaticInjection(ProcessorFactory.class);

...

}

class ProcessorFactory {

@Inject static Provider<Processor> processorProvider;

/**

* @deprecated prefer to inject your processor instead.

*/

@Deprecated

public static Processor getInstance() {

return processorProvider.get();

}

}

Automatic Injection(自动注入):自动注入

Guice自动注入有如下情况:
在绑定代码中,实例被传递到toInstance()
在绑定代码中,provider实例被传递到toProvider()

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

你可能感兴趣的文章
创业时,我们在聊什么
查看>>
glusterfs本地yum源安装报错Error: Package:
查看>>
Java 序列化
查看>>
自己做的一个肤色检测模型
查看>>
PXE网络装机
查看>>
wlan学习心得
查看>>
Css盒子模型的应用
查看>>
LB-HA负载均衡结合高可用keepavlied
查看>>
下拉刷新
查看>>
spring解析
查看>>
电脑无法安装虚拟机
查看>>
FFmpeg深入分析之零-基础
查看>>
【源资讯 第17期】套路太深!作为开发者该了解什么?
查看>>
JS中数组对象去重
查看>>
给 Web 开发人员推荐的开源图形库 —— 2D/3D
查看>>
【源资讯 第45期】开源软件再掀专利和安全风波
查看>>
#51CTO学院四周年#砥砺前行的日子
查看>>
Linux系统软件安装
查看>>
file_fdw创建外部表及其与普通表的结合
查看>>
联想启天M715E安装硬盘保护系统和网络同传
查看>>