All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.datakernel.di.annotation.Provides Maven / Gradle / Ivy

Go to download

DataKernel has an extremely lightweight DI with ground-breaking design principles. It supports nested scopes, singletons, object factories, modules and plugins which allow to transform graph of dependencies at startup time without any reflection.

The newest version!
package io.datakernel.di.annotation;

import io.datakernel.di.module.AbstractModule;
import io.datakernel.di.module.ModuleBuilder;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * This annotation is part of the provider method DSL, it allows you to build bindings and even a subset of
 * {@link io.datakernel.di.core.BindingGenerator generators} using methods declared in your modules.
 * 

* Method return type and method {@link io.datakernel.di.core.Name name annotation} form a {@link io.datakernel.di.core.Key key} * that the resulting binding is bound to, its parameter types and their {@link io.datakernel.di.core.Name name annotations} form * binding dependencies and its body forms the factory for the binding. *

* Note that provider methods are called using reflection, so if you need the best performance * for some frequently-entered scopes consider using less declarative but reflection-free * {@link ModuleBuilder#bind(io.datakernel.di.core.Key)} binding DSL} * * @see AbstractModule */ @Target(METHOD) @Retention(RUNTIME) public @interface Provides { }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy