Kodein-DI 7.0.0(三):声明依赖

2020-08-06  本文已影响0人  何意悲欢0_o

​ Kodein-DI依赖在DI容器中声明:

val di = DI {
    /* Bindings */
}

​ 一个声明总是以bind<Type>() with开头,Kodein-DI提供了多种绑定方式:

val di = DI {
    bind<Dice>() with...
    bind<Dice>(tag = "DnD10") with...
    bind<Dice>(tag = "DnD20") with...
}

tag的类型为Any,不仅仅为Stringtag类型必须支持equality & hashcode比较,因此官方建议使用基本类型,StringInt或数据类。

val di = DI {
    bind<DataSource>() with singleton { MySQLDataSource() }
    //使用DataSource作为可传递工厂依赖项
    bind<Connection>() with privider { instance<DataSource>().openConnection() }
}
上一篇 下一篇

猜你喜欢

热点阅读