Popularity
1.7
Stable
Activity
0.0
Stable
15
3
2

Programming language: Kotlin
License: MIT License
Tags: Dependency Injection    

kodeinject alternatives and similar libraries

Based on the "Dependency Injection" category.
Alternatively, view kodeinject alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of kodeinject or a related project?

Add another 'Dependency Injection' Library

README

kodeinject Build Status Maven Central

A small library allowing constructor dependency injection for applications using Kodein.

Usage

Add dependency

Maven
<dependency>
    <groupId>pw.kmp</groupId>
    <artifactId>kodeinject</artifactId>
    <version>1.2.2</version>
</dependency>
Gradle
compile "pw.kmp:kodeinject:1.2.2"

Injected

class Application(db: Database) {
    // stuff goes here
}

val kodein = Kodein {
    bind<Database>() with singleton { MongoDB("127.0.0.1", 27017) }
    bind() from injected<Application>()
}

kodeinject will automatically instantiate your injected() classes using bindings from the Kodein container.

Singleton

val kodein = Kodein {
    bind() from injectedSingleton<Application>()
}

Use injectedSingleton() to cache the dependency instead of creating a new instance for each access.

Nullable

class Application(db: Database, cache: Cache?) {
    // stuff goes here
}

Paramaters that are nullable will be set to null if they are unavailable upon injection.

Automatic Kodein injection

class Application(kodein: Kodein) {
    // stuff goes here
}

Constructors requiring the Kodein object will be injected with it by default, without the need to create a binding.