前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >快速学习-IOC和DI

快速学习-IOC和DI

作者头像
cwl_java
发布2020-02-12 12:50:56
2950
发布2020-02-12 12:50:56
举报
文章被收录于专栏:cwl_Javacwl_Java

第2章 IOC容器和Bean的配置

2.1 IOC和DI

2.1.1 IOC(Inversion of Control):反转控制

在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。 反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。

2.1.2 DI(Dependency Injection):依赖注入

IOC的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接受来自于容器的资源注入。相对于IOC而言,这种表述更直接。 IOC 描述的是一种思想,而DI 是对IOC思想的具体实现.

2.1.3 IOC容器在Spring中的实现

1)在通过IOC容器读取Bean的实例之前,需要先将IOC容器本身实例化。 2)Spring提供了IOC容器的两种实现方式 ① BeanFactory:IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。 ② ApplicationContext:BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactory。

在这里插入图片描述
在这里插入图片描述

2.1.4 ApplicationContext的主要实现类

  1. ClassPathXmlApplicationContext:对应类路径下的XML格式的配置文件
  2. FileSystemXmlApplicationContext:对应文件系统中的XML格式的配置文件
  3. 在初始化时就创建单例的bean,也可以通过配置的方式指定创建的Bean是多实例的。

2.1.5 ConfigurableApplicationContext

  1. 是ApplicationContext的子接口,包含一些扩展方法
  2. refresh()和close()让ApplicationContext具有启动、关闭和刷新上下文的能力。

2.1.6 WebApplicationContext

  1. 专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第2章 IOC容器和Bean的配置
    • 2.1 IOC和DI
      • 2.1.1 IOC(Inversion of Control):反转控制
      • 2.1.2 DI(Dependency Injection):依赖注入
      • 2.1.3 IOC容器在Spring中的实现
      • 2.1.4 ApplicationContext的主要实现类
      • 2.1.5 ConfigurableApplicationContext
      • 2.1.6 WebApplicationContext
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档