## 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
`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