The provider can be shared across multiple classes. The provider lifetime
is strictly tied to the application lifecycle. Once the application has
bootstrapped, all providers have been instantiated.
TRANSIENT = 1
A new private instance of the provider is instantiated for every use