我最近将匕首2.8更新为2.9匕首。和最新版本的文档已添加如下:
-为组件构建器添加了@BindsInstance
,以轻松绑定在图形外部构造的实例。
-生产者:添加了ProducerMonitor.ready ()
,当所有生产者的输入均可用时调用。
-已移除@Provides(type =...)
用法。请改用dagger.multibindings
中的注释。 @Produces.type
也被删除。
-现在已验证所有绑定方法,即使在特定的@Component
中未使用它们也是如此>
-@Component.dependencies
不能再包含@Modules
。
我想知道这些新功能如何:
谢谢!
注意:我是匕首2的新手,但您希望能够最大程度地利用此库。
我最近将匕首2.8更新为2.9匕首。和最新版本的文档已添加如下:-为组件构建器添加了@BindsInstance,可以轻松地绑定以下实例:...
@BindsInstance
记录在用户指南中:https://google.github.io/dagger/users-guide.html#binding-instances
@ bindsInstance用于从获取组件的模块和链接模块中删除构造函数。
@BindsInstance
让组件直接托管依赖项,因此生存期就是组件的生存期。这可以用来避免@Singleton
范围。有关系吗避免单例作用域可帮助DaggerAppComponent
无需昂贵的DoubleCheck即可访问提供程序。因此,可以,仍然可以使用模块而不使用任何范围。但是,使用模块仍然意味着DaggerAppComponent
将使用提供者工厂来注入依赖项。使用@BindsInstance
,根本不需要提供程序,除非通过Lazy<>
或Provider<>
延迟注入依赖项。