Guice系列之用户指南(十一)

简介:

原文地址: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()


相关文章
|
消息中间件 自然语言处理 Java
ElasticSearch 学习笔记(四)-----ES在SpringBoot中的集成以及项目应用开发指南
接上一篇ElasticSearch 学习笔记(三)-----ES的设计原理以及分词器说明。今天我们主要介绍ES 与SpringBoot 的集成以及项目应用开发指南。
750 0
ElasticSearch 学习笔记(四)-----ES在SpringBoot中的集成以及项目应用开发指南
|
存储 JSON 搜索推荐
ElasticSearch概述及安装 | 带你读《SpringBoot实战教程》之三十九
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
ElasticSearch概述及安装 | 带你读《SpringBoot实战教程》之三十九
|
Java 容器 Android开发
Gradle2.0用户指南翻译——第十章. Web 应用程序快速入门
翻译项目请关注Github上的地址:https://github.com/msdx/gradledoc本文翻译所在分支:https://github.com/msdx/gradledoc/tree/2.0 。
1470 0
Sping 系列框架官方参考文档(全)
http://docs.spring.io/spring-framework/docs/4.2.4.RELEASE/spring-framework-reference/html/index.html
921 0
|
API
《Jersey用户指南》–序言
序言 此书是Jersey 2.23.1的用户手册。我们努力及时更新这本手册因为Jersey 2.23.1增加了一些新的功能。当您在阅读这本用户手册的时候, 请同时参考我们的Jersey  API 手册从而进一步理解Jersey 的功能和API。
1410 0
|
Java 数据库连接 Spring
Guice 快速入门
Guice是谷歌推出的一个轻量级依赖注入框架,帮助我们解决Java项目中的依赖注入问题。如果使用过Spring的话,会了解到依赖注入是个非常方便的功能。不过假如只想在项目中使用依赖注入,那么引入Spring未免大材小用了。
938 0
|
Java 数据库连接 关系型数据库