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()


相关文章
|
6月前
|
存储 安全 Java
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
【Java技术专题】「Guava开发指南」手把手教你如何进行使用Guava工具箱进行开发系统实战指南(不可变集合篇)
75 1
|
消息中间件 自然语言处理 Java
ElasticSearch 学习笔记(四)-----ES在SpringBoot中的集成以及项目应用开发指南
接上一篇ElasticSearch 学习笔记(三)-----ES的设计原理以及分词器说明。今天我们主要介绍ES 与SpringBoot 的集成以及项目应用开发指南。
900 0
ElasticSearch 学习笔记(四)-----ES在SpringBoot中的集成以及项目应用开发指南
|
算法 IDE Java
Drools简介
Drools简介
1135 0
|
架构师 NoSQL Java
SpringBoot从入门到精通(二十二)使用Swagger2优雅构建 RESTful API文档
在实际项目中,Api 接口系统对接过程中,Api 接口文档是非常重要的文档。一般是设计完成之后,同时编写Api 接口文档,然后将接口文档发给相关人员,于是大家就按照该文档开发、集成并最终上线。但是,这是一种非常理想的状态,实际开发中,接口不断变化,接口文档也必须保持更新,这是一个非常麻烦的过程!为了解决这些问题,Swagger2 应运而生。接下来,就和大伙聊一聊 Spring Boot 如何整合Swagger2,使用Swagger2构建 RESTful API文档。
SpringBoot从入门到精通(二十二)使用Swagger2优雅构建 RESTful API文档
|
存储 JSON 搜索推荐
ElasticSearch概述及安装 | 带你读《SpringBoot实战教程》之三十九
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
ElasticSearch概述及安装 | 带你读《SpringBoot实战教程》之三十九
Sping 系列框架官方参考文档(全)
http://docs.spring.io/spring-framework/docs/4.2.4.RELEASE/spring-framework-reference/html/index.html
939 0