申明需要注入的对象
ActFramework通过javax.inject.Inject
注解识别需要注入的对象. 你可以通过以下三种标准方式申明需要注入的对象:
字段注入
public class Foo { @Inject private Bar bar; }
构造器注入
public class Foo { private Bar bar @Inject public Foo(Bar bar) { this.bar = bar; } }
设置器(Setter)注入
public class Foo { private Bar bar @Inject public void setBar(Bar bar) { this.bar = bar; } }
小贴士 字段注入最为简明,不过对单元测试会造成一些麻烦
获取有依赖申明的对象
App app = App.instance(); // this ensure Bar has been injected into Foo Foo foo = app.getInstance(Foo.class);
方法参数的依赖注入
当框架检测到响应函数参数列表中某个参数类型有依赖注入绑定,框架自动使用依赖注入提供该参数值
// suppose XyzDao has bound provider,then framework will use the provider to // value for `dao` parameter public Result handleXyzRequest(String s,int i,ActionContext context,XyzDao dao) { ... }
通过Module类声明绑定
如果你以前使用过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
实例
链接
- ActFramework依赖注入 II - 注入对象类型
- Actframework依赖注入 III - 定义绑定
- ActFramework官网
- [ActFramework@开源中国](https://www.oschina.net/p/actframework)
- [ActFramework@码云](https://git.oschina.net/actframework/actframework)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。