Alex Schiff
02/07/2024, 2:09 PMval koinModule = module {
single<ConnectionFactory> {
ConnectionFactories.get(
ConnectionFactoryOptions.builder()
.option(ConnectionFactoryOptions.DRIVER, "postgres")
.option(ConnectionFactoryOptions.HOST, "localhost")
.option(ConnectionFactoryOptions.PORT, 5432)
.option(ConnectionFactoryOptions.DATABASE, "om_database")
.option(ConnectionFactoryOptions.USER, "postgres")
.option(ConnectionFactoryOptions.PASSWORD, "password")
.build()
)
}
single<PostgresqlTables> { tables().postgresql(CitiesDto) }
single<R2dbcSqlClient> { (connectionFactory: ConnectionFactory, tables: PostgresqlTables) ->
connectionFactory.coSqlClient(
tables
)
}
single<CityService> { CityService(get()) }
}
fun Application.configureKoin() {
install(Koin) {
slf4jLogger()
modules(koinModule)
}
}
and here is my routing:
fun Application.configureRouting() {
val cityService by inject<CityService>()
routing {
// snip
The error I am getting is INFO [Koin] - * Instance creation error : could not create instance for '[Singleton:'org.ufoss.kotysa.R2dbcSqlClient']': org.koin.core.error.NoParameterFoundException: Can't get injected parameter #0 from DefinitionParameters[] for type 'io.r2dbc.spi.ConnectionFactory'
Alex Schiff
02/07/2024, 2:50 PMval koinModule = module {
val connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions.builder()
.option(ConnectionFactoryOptions.DRIVER, "postgres")
.option(ConnectionFactoryOptions.HOST, "localhost")
.option(ConnectionFactoryOptions.PORT, 5432)
.option(ConnectionFactoryOptions.DATABASE, "om_database")
.option(ConnectionFactoryOptions.USER, "postgres")
.option(ConnectionFactoryOptions.PASSWORD, "password")
.build()
)
val tables = tables().postgresql(CitiesDto)
single<R2dbcSqlClient> {
connectionFactory.coSqlClient(
tables
)
}
single<CityService> { CityService(get()) }
}
arnaud.giuliani
02/14/2024, 8:58 AMget<YourType>()
in your definition