## 类的使用
org.springframework.beans.factory.BeanCreationException

- 使用BeanCreationException的程序包
  程序包 | 说明
  --- | ---
  org.springframework.beans.factory | The core package implementing Spring's lightweight Inversion of Control (IoC) container.
  org.springframework.beans.factory.annotation | Support package for annotation-driven bean configuration.
  org.springframework.beans.factory.support | Classes supporting the `org.springframework.beans.factory` package.

- - ### org.springframework.beans.factory中BeanCreationException的使用

    org.springframework.beans.factory中BeanCreationException的子类
    限定符和类型 | 类和说明
    --- | ---
    `class` | `BeanCreationNotAllowedException` Exception thrown in case of a bean being requested despite bean creation currently not being allowed (for example, during the shutdown phase of a bean factory).
    `class` | `BeanCurrentlyInCreationException` Exception thrown in case of a reference to a bean that's currently in creation.
    `class` | `BeanIsAbstractException` Exception thrown when a bean instance has been requested for a bean definition which has been marked as abstract.
    `class` | `UnsatisfiedDependencyException` Exception thrown when a bean depends on other beans or simple properties that were not specified in the bean factory definition, although dependency checking was enabled.

  - ### org.springframework.beans.factory.annotation中BeanCreationException的使用

    抛出BeanCreationException的org.springframework.beans.factory.annotation中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `Constructor<?>[]` | AutowiredAnnotationBeanPostProcessor.`determineCandidateConstructors(Class<?> beanClass, String beanName)`
    `PropertyValues` | AutowiredAnnotationBeanPostProcessor.`postProcessPropertyValues(PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName)`
    `void` | AutowiredAnnotationBeanPostProcessor.`processInjection(Object bean)` 'Native' processing method for direct calls with an arbitrary target instance, resolving all of its fields and methods which are annotated with `@Autowired`.

  - ### org.springframework.beans.factory.support中BeanCreationException的使用

    抛出BeanCreationException的org.springframework.beans.factory.support中的方法
    限定符和类型 | 方法和说明
    --- | ---
    `protected Object` | AbstractAutowireCapableBeanFactory.`createBean(String beanName, RootBeanDefinition mbd, Object[] args)` Central method of this class: creates a bean instance, populates the bean instance, applies post-processors, etc.
    `protected abstract Object` | AbstractBeanFactory.`createBean(String beanName, RootBeanDefinition mbd, Object[] args)` 该方法定义在 AbstractBeanFactory 中，其含义是根据给定的 BeanDefinition 和 args 实例化一个 Bean 对象。
    `protected Object` | AbstractAutowireCapableBeanFactory.`doCreateBean(String beanName, RootBeanDefinition mbd, Object[] args)` 真的创建bean的逻辑,该方法是最复杂的包含了调用构造函数,给bean的属性赋值 调用bean的初始化操作以及 生成代理对象 都是在这里