The easy dependency injection framework for Kotlin developers.
Add the dependency to your project:
repositories {
mavenCentral()
}
dependencies {
implementation("com.viktormykhailiv:kotdil:$kotdil_version")
}- Create your own modules to provide dependencies:
val idModule = module {
val id = AtomicInteger(1)
factory(name = AUTO_ID) {
id.getAndIncrement()
}
}
val generatorModule = module {
single<RandomGenerator> {
object : RandomGenerator {
override fun generateLong() = Random.nextLong()
}
}
single<RandomGenerator>(name = RANDOM_FAKE) {
object : RandomGenerator {
override fun generateLong() = System.currentTimeMillis()
}
}
}- Register all modules:
startKotDil {
modules(idModule, generatorModule)
}- Call
injectorinjectValueto get required dependency:
val user = User(injectValue(AUTO_ID), "John")
val generator by inject<RandomGenerator>() // Lazy init
generator.generateLong()Also you can find additional usage examples in the unit-tests package