Object providers represent an alternate way to locate an object provided somewhere in the {@link org.apache.tapestry5.ioc.Registry}. Instead of using a just the service id to gain access to a service within the Registry, object providers in different flavors are capable of vending, or even creating, objects of disparate types from disparate sources.
Object providers are consulted in a strict order, and the first non-null result is taken.
In many cases, an object provider searches for additional annotations on the element (usually a parameter, or perhaps a field) for which a value is required.