The main entry point for components looking to retrieve user-provided beans.
Depending on the integration, beans may be resolved using reflection (expecting a no-argument constructor),
or using a more advanced dependency injection context (CDI, Spring DI).
Regardless of the implementations, this interface is used to retrieve the beans,
referenced either by their name, by their type, or both.
This interface may be used by any Hibernate Search module,
but should only be implemented by the Hibernate Search engine itself;
if you are looking for implementing your own bean resolver,
you should implement
BeanResolver instead.