最早接触依赖注入是使用Spring的时候,但是这个框架有点太"重"了,所以如果只是想在代码里面使用依赖注入,可以选择Google的Guice,相比于Spring更加的轻量级和简单。
Demo
基于guice的4.1.0版本,实现Hello world的功能
- 先创建一个接口
public interface IHello {
void sayHello();
}
- 定义实现类
public class Hello implements IHello {
private String name;
@Inject
public Hello(@Named("name") String name) {
this.name = name;
}
@Override
public void sayHello() {
System.out.println("Hello " + name);
}
}
- 定义Module
public class AppModule extends AbstractModule {
@Override
protected void configure() {
bindConstant().annotatedWith(named("name")).to( "world" );
bind(IHello.class).to(Hello.class);
}
}
- 测试类
public class App {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new AppModule());
IHello hello = injector.getInstance(IHello.class);
hello.sayHello();
}
}
-
输出结果
Hello world