第三章 依赖注入" class="reference-link"> 第三章 依赖注入
ActFramework通过注解识别需要注入的对象. 你可以通过以下三种标准方式申明需要注入的对象:
小贴士 字段注入最为简明,不过对单元测试会造成一些麻烦
public class Foo {
@Inject
public Foo(Bar bar) {
this.bar = bar;
}
}
当框架检测到响应函数参数列表中某个参数类型有依赖注入绑定,框架自动使用依赖注入提供该参数值
@GetAction("xyz")
...
}
在上面的方法参数中, ActionContext
和 XyzDao
两个类都是有依赖注入绑定的, 因此 context
和 dao
两个参数会被依赖注入, 而 s
和 i
则因为 String
和 类没有依赖注入绑定而从请求参数中解析
如果你以前使用过guice,和通常的Guice应用一样,你可以创建Module类来申明注入绑定规则:
public class GreetingModule extends org.osgl.inject.Module {
@Override
protected void configure() {
bind(GreetingService.class).to(GreetingServiceImpl.class);
}
小贴士 在ActFramework中你不必使用Module类来创建Injector
对象实例。框架会自动寻找所有申明的Module类并在
内部创建Injector
实例