This implementation attempts to query the FactoryBean's generic parameter metadata
if present to determine the object type. If not present, i.e. the FactoryBean is
declared as a raw type, checks the FactoryBean's
getObjectType method
on a plain instance of the FactoryBean, without bean properties applied yet.
If this doesn't return a type yet, a full creation of the FactoryBean is
used as fallback (through delegation to the superclass's implementation).
The shortcut check for a FactoryBean is only applied in case of a singleton
FactoryBean. If the FactoryBean instance itself is not kept as singleton,
it will be fully created to check the type of its exposed object.