Guice 學習(七)常量和屬性的註入( Constant and Property Inject)
阿新 • • 發佈:2017-07-30
-a ret roc build ann class google mes ota
1、常量註入方式
package com.guice.ConstantInjectDemo;
import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Module;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
/*
* 綁定常量
*/
public class ConstantInjectDemo {
@Inject
@Named("a" )
private int a;
public static void main(String[] args) {
ConstantInjectDemo instance = Guice.createInjector(new Module() {
@Override
public void configure(Binder binder) {
// 將數值22綁定到常量值a上
binder.bindConstant().annotatedWith(Names.named ("a")).to(22);
}
}).getInstance(ConstantInjectDemo.class);
System.out.println(instance.a);// 22
}
}
除了能夠綁定int外。在ConstantBindingBuilder類中還能夠綁定其他的基本類型。
com.google.inject.binder.ConstantBindingBuilder.to(String)
com.google.inject.binder.ConstantBindingBuilder.to(long)
com.google.inject.binder.ConstantBindingBuilder.to(boolean)
com.google.inject.binder.ConstantBindingBuilder.to(double)
com.google.inject.binder.ConstantBindingBuilder.to(float)
com.google.inject.binder.ConstantBindingBuilder.to(short)
com.google.inject.binder.ConstantBindingBuilder.to(char)
2、屬性註入方式
package com.guice.ConstantInjectDemo;
import java.util.Properties;
import com.google.inject.Binder;
import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Module;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
/**
* TODO : 綁定Properties 除了能夠綁定基本類型外。還能夠綁定一個Properties到Guice中。當然了,因為Properties本質上時一個Map<String,String>, 因此Guice也同意綁定一個Map<String,String>。
*
* @author E468380
*/
public class PropertiesInjectDemo {
@Inject
@Named("csdn")
private String csdn;
public static void main(String[] args) {
PropertiesInjectDemo instance = Guice.createInjector(new Module() {
@Override
public void configure(Binder binder) {
Properties properties = new Properties();
properties.setProperty("csdn", "www.csdn.com");
Names.bindProperties(binder, properties);
}
}).getInstance(PropertiesInjectDemo.class);
System.out.println(instance.csdn);
}
}
Guice 學習(七)常量和屬性的註入( Constant and Property Inject)