org.springframework.beans.factory.support

## Interface InstantiationStrategy

All Known Implementing Classes:
  CglibSubclassingInstantiationStrategy, SimpleInstantiationStrategy

    public interface InstantiationStrategy

Interface responsible for creating instances corresponding to a root bean definition.

This is pulled out into a strategy as various approaches are possible, including using CGLIB to create subclasses on the fly to support Method Injection.

Since:
  1.1
Author:
  Rod Johnson

### Method Summary

Methods
`Object` `instantiate(RootBeanDefinition beanDefinition, String beanName, BeanFactory owner)` Return an instance of the bean with the given name in this factory.
`Object` `instantiate(RootBeanDefinition beanDefinition, String beanName, BeanFactory owner, Constructor<?> ctor, Object[] args)` Return an instance of the bean with the given name in this factory, creating it via the given constructor.
`Object` `instantiate(RootBeanDefinition beanDefinition, String beanName, BeanFactory owner, Object factoryBean, Method factoryMethod, Object[] args)` Return an instance of the bean with the given name in this factory, creating it via the given factory method.

### Method Detail

#### instantiate

    Object instantiate(RootBeanDefinition beanDefinition,
                     String beanName,
                     BeanFactory owner)
                       throws BeansException

Return an instance of the bean with the given name in this factory.

Parameters:
  `beanDefinition` - the bean definition
  `beanName` - name of the bean when it's created in this context. The name can be `null` if we're autowiring a bean that doesn't belong to the factory.
  `owner` - owning BeanFactory
Returns:
  a bean instance for this bean definition
Throws:
  `BeansException` - if the instantiation failed

#### instantiate

    Object instantiate(RootBeanDefinition beanDefinition,
                     String beanName,
                     BeanFactory owner,
                     Constructor<?> ctor,
                     Object[] args)
                       throws BeansException

Return an instance of the bean with the given name in this factory, creating it via the given constructor.

Parameters:
  `beanDefinition` - the bean definition
  `beanName` - name of the bean when it's created in this context. The name can be `null` if we're autowiring a bean that doesn't belong to the factory.
  `owner` - owning BeanFactory
  `ctor` - the constructor to use
  `args` - the constructor arguments to apply
Returns:
  a bean instance for this bean definition
Throws:
  `BeansException` - if the instantiation failed

#### instantiate

    Object instantiate(RootBeanDefinition beanDefinition,
                     String beanName,
                     BeanFactory owner,
                     Object factoryBean,
                     Method factoryMethod,
                     Object[] args)
                       throws BeansException

Return an instance of the bean with the given name in this factory, creating it via the given factory method.

Parameters:
  `beanDefinition` - bean definition
  `beanName` - name of the bean when it's created in this context. The name can be `null` if we're autowiring a bean that doesn't belong to the factory.
  `owner` - owning BeanFactory
  `factoryBean` - the factory bean instance to call the factory method on, or `null` in case of a static factory method
  `factoryMethod` - the factory method to use
  `args` - the factory method arguments to apply
Returns:
  a bean instance for this bean definition
Throws:
  `BeansException` - if the instantiation failed