
Simplifies dependency injection with custom module creation and registration, offering easy injection of dependencies through functions, supporting both singleton and factory-based patterns.
The easy dependency injection framework for Kotlin developers.
Add the dependency to your project:
repositories {
mavenCentral()
}
dependencies {
implementation("com.viktormykhailiv:kotdil:$kotdil_version")
}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()
}
}
}startKotDil {
modules(idModule, generatorModule)
}inject or injectValue to 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
The easy dependency injection framework for Kotlin developers.
Add the dependency to your project:
repositories {
mavenCentral()
}
dependencies {
implementation("com.viktormykhailiv:kotdil:$kotdil_version")
}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()
}
}
}startKotDil {
modules(idModule, generatorModule)
}inject or injectValue to 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