BeanDefinition(name: String? = null, type: KClass<T>, creator: (BeansProvider) -> T)
A BeanDefinition defines a bean through its type, a function to create the bean and optionally with a name.
Author Christopher Frieler