Skip to content
This repository has been archived by the owner on Jul 29, 2022. It is now read-only.
/ kodeinject Public archive

⚙️ Constructor dependency injection for Kodein.

License

Notifications You must be signed in to change notification settings

kailan/kodeinject

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

⚙️ Constructor dependency injection for Kodein.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages