Provides bean creation (with constructor resolution), property population,
wiring (including autowiring), and initialization. Handles runtime bean
references, resolves managed collections, calls initialization methods, etc.
Supports autowiring constructors, properties by name, and properties by type.
The main template method to be implemented by subclasses is
findMatchingBeans, used for autowiring by type. In case of
a factory which is capable of searching its bean definitions, matching
beans will typically be implemented through such a search. For other
factory styles, simplified matching algorithms can be implemented.
Note that this class does not assume or implement bean definition
registry capabilities. See DefaultListableBeanFactory for an implementation
of the ListableBeanFactory and BeanDefinitionRegistry interfaces, which
represent the API (or SPI) view of such a factory.