bean配置
bean基础配置

bean别名配置

**注意事项:**获取bean无论是通过id还是name获取,如果无法获取到,将抛出异常NoSuchBeanDefinitionException(NoSuchBeanDefinitionException:No bean named ‘bookServiceImpl’ available)
bean作用范围配置

bean作用范围说明
- 为什么bean默认为单例?
- 适合交给容器进行管理的bean 
  - 表现层对象
- 业务层对象
- 数据层对象
- 工具对象
 
- 不适合交给容器进行管理的bean 
  - 封装实体的域对象
 
bean实例化
- bean本质上就是对象,创建bean使用构造方法完成
实例化bean的三种方式
第一种:构造方法(常用)
-  提供可访问的构造方法 
  
-  配置 

- 无参构造方法如果不存在,将抛出异常BeanCreationException
第二种:静态工厂(了解)
-  静态工厂 
  
-  配置 

第三种:实例工厂(了解)
- 实例工厂

- 配置

第四种:FactoryBean
- FactoryBean

- 配置

bean生命周期
- 生命周期:从创建到消亡的完整过程
- bean生命周期:bean从创建到销毁的整体过程
- bean生命周期控制:在bean创建后到销毁前做一些事情
bean生命周期控制
- 提供生命周期控制方法

- 配置生命周期控制方法

接口控制(了解)
- 实现InitializingBean,DisposableBean接口

bean生命周期
- 初始化容器 
  - 创建对象(内存分配)
- 执行构造方法
- 执行属性注入(set操作)
- 执行bean初始化方法
 
- 使用bean 
  - 执行业务操作
 
- 关闭/销毁容器 
  - 执行bean销毁方法
 
bean销毁时机
- 容器关闭前触发bean的销毁
- 关闭容器方式: 
  - 手工关闭容器 
    - ConfigurableApplicationContext接口close()操作
 
- 注册关闭钩子,在虚拟机退出前先关闭容器再退出虚拟机 
    - ConfigurableApplicationContext接口registerShutdownHook()操作
 
 
- 手工关闭容器 
    

小结




















