Defines a factory which can return an Object instance
(possibly shared or independent) when invoked.
This interface is typically used to encapsulate a generic factory which
returns a new instance (prototype) of some target object on each invocation.
This interface is similar to
FactoryBean, but implementations
of the latter are normally meant to be defined as SPI instances in a
BeanFactory, while implementations of this class are normally meant
to be fed as an API to other beans (through injection). As such, the
getObject() method has different exception handling behavior.