Spring IOC

IOC 控制反转:Inversion of Control

  • spring core最核心部分
  • DI  依赖注入 dependency inversion 实现:
    • 把底层类作为参数,传递给上层类,实现上层对下层的“控制”
    • set注入、接口注入、注释注入、构造器注入
  • DL 实现: dependency lookup

IOC容器的优势

  • 创建实例,不需要了解细节
  • 避免使用new创建类

spring IOC支持的功能

  • ※依赖注入
  • 依赖检查
  • ※自动装配
  • 支持集合
  • 指定初始化方法和销毁方法
  • 支持回调方法

spring IOC容器的核心接口

  • BeanFactory: 是spring框架的基础设置,面向spring
  • ApplicationContext: 面向spring框架的开发者
    • 继承多个接口,实现多个功能
    • 继承BeanFactory : 能够管理,装配Bean
    • 继承ResourcePatternResolver: 能够加载资源文件
    • 继承MessageSource: 能够实现国际化等功能
    • 继承ApplicationEventPublisher:能够注册监听器,实现监听机制

Bean的使用流程

springIOC的getBean方法代码逻辑

  1.  转化为beanName
  2. 从缓存中加载实例
  3. 实例化Bean
  4. 检测parentBeanFactory
  5. 初始化依赖的Bean
  6. 创建Bean

Spring bean的作用域:

  • singleton: Spring默认的作用域,容器中拥有唯一的Bean实例
  • prototype:针对每个getBean请求,容器都会创建一个Bean实例
  • request: 会为每个Http请求,创建一个Bean实例
  • session:会为每个session,创建一个Bean实例
  • globalSession: 会为每个全局Http Session创建一个Bean实例,该作用域仅对Portlet有效

Spring Bean的生命周期

生命周期由容器进行管理:仅供参考

 

posted @ 2019-07-31 15:50  豆芽花花儿酱  阅读(171)  评论(0编辑  收藏  举报