Configure redis for ktor/koin

This commit is contained in:
2025-03-19 00:30:35 +01:00
parent 6d2043d9fe
commit 8e732b0f9e
7 changed files with 30 additions and 10 deletions

View File

@@ -2,10 +2,14 @@ package eventDemo.configuration.injection
import org.koin.dsl.module
val appKoinModule =
fun appKoinModule(config: Configuration) =
module {
configureDIBusiness()
configureDIInfrastructure()
configureDIInfrastructure(config.redisUrl)
configureDILibs()
configureDICommandActions()
}
data class Configuration(
val redisUrl: String,
)

View File

@@ -14,8 +14,13 @@ import eventDemo.libs.event.projection.SnapshotConfig
import org.koin.core.module.Module
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import redis.clients.jedis.JedisPool
fun Module.configureDIInfrastructure(redisUrl: String) {
single {
JedisPool(redisUrl)
}
fun Module.configureDIInfrastructure() {
singleOf(::GameEventBusInMemory) bind GameEventBus::class
singleOf(::GameEventStoreInMemory) bind GameEventStore::class
singleOf(::GameProjectionBusInMemory) bind GameProjectionBus::class

View File

@@ -1,5 +1,6 @@
package eventDemo.configuration.ktor
import eventDemo.configuration.injection.Configuration
import eventDemo.configuration.injection.appKoinModule
import io.ktor.server.application.Application
import io.ktor.server.application.install
@@ -9,6 +10,8 @@ import org.koin.logger.slf4jLogger
fun Application.configureKoin() {
install(Koin) {
slf4jLogger()
modules(appKoinModule)
val redisUrl = environment.config.propertyOrNull("redis.url")?.getString() ?: error("You must set the redis.url")
modules(appKoinModule(Configuration(redisUrl)))
}
}