Update kodein

This commit is contained in:
2020-07-02 23:18:00 +02:00
parent 02c6b2a0c5
commit fb471f8100
8 changed files with 46 additions and 47 deletions
+3 -3
View File
@@ -14,11 +14,11 @@ import be.vandewalleh.routing.TagRoutes
import be.vandewalleh.routing.UserRoutes
import be.vandewalleh.services.NoteService
import be.vandewalleh.services.UserService
import org.kodein.di.Kodein
import org.kodein.di.generic.*
import org.kodein.di.*
import org.kodein.di.DI
import org.slf4j.LoggerFactory
val mainModule = Kodein.Module("main") {
val mainModule = DI.Module("main") {
bind() from singleton { NoteService(instance()) }
bind() from singleton { UserService(instance(), instance()) }
+14 -18
View File
@@ -6,32 +6,28 @@ import io.ktor.application.*
import io.ktor.routing.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import org.kodein.di.Kodein
import org.kodein.di.DI
import org.kodein.di.description
import org.kodein.di.generic.instance
import org.kodein.di.instance
import org.slf4j.Logger
import java.util.concurrent.TimeUnit
fun main() {
val kodein = Kodein {
import(mainModule)
}
val config by kodein.instance<Config>()
val logger by kodein.instance<Logger>()
val di = DI { import(mainModule) }
val config by di.instance<Config>()
val logger by di.instance<Logger>()
logger.info("Running application with configuration $config")
logger.debug("Kodein bindings\n${kodein.container.tree.bindings.description()}")
serve(kodein)
logger.debug("Kodein bindings\n${di.container.tree.bindings.description()}")
serve(di)
}
fun serve(kodein: Kodein) {
val config by kodein.instance<Config>()
val logger by kodein.instance<Logger>()
fun serve(di: DI) {
val config by di.instance<Config>()
val logger by di.instance<Logger>()
val env = applicationEngineEnvironment {
module {
module(kodein)
module(di)
}
log = logger
connector {
@@ -46,14 +42,14 @@ fun serve(kodein: Kodein) {
}
fun Application.module(kodein: Kodein) {
val builders: Set<ApplicationBuilder> by kodein.instance()
fun Application.module(di: DI) {
val builders: Set<ApplicationBuilder> by di.instance()
builders.forEach {
it.builder(this)
}
val routingBuilders: Set<RoutingBuilder> by kodein.instance()
val routingBuilders: Set<RoutingBuilder> by di.instance()
routingBuilders.forEach {
routing(it.builder)
}
-2
View File
@@ -7,8 +7,6 @@ import io.ktor.application.*
import io.ktor.auth.*
import io.ktor.response.*
import io.ktor.routing.*
import org.kodein.di.Kodein
import org.kodein.di.generic.instance
class TagRoutes(noteService: NoteService) : RoutingBuilder({
authenticate {