The annotated type (a component), field (a component dependency for another class), or constructor was designed to be
compatible with injection, meaning that:
for Types, other classes can confidently access an instance of this type as a dependency via auto-wired
injection;
for Fields, they can be instantiated via auto-wired dependency injection;
for Constructors, there are no parameters declared which are NonInjectableComponents, and thus should be
satisfiable under default dependency injection circumstances