原文地址: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 {
|
或者是在成员变量上:
1 |
@Inject (optional= true ) Date launchDate;
|
On-demand Injection(按需注入):方法注入或者变量注入可能用在初始化一个已经存在的实例。你可以用Injector.injectMembers API:
1 2 3 4 5 |
public static void main(String[] args) {
|
Static Injections(静态注入):不推荐,依赖关系不透明和受类的全局状态影响。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
@Override public void configure() {
|
Automatic Injection(自动注入):自动注入
Guice自动注入有如下情况:
在绑定代码中,实例被传递到toInstance()
在绑定代码中,provider实例被传递到toProvider()