2 IOC

本文介绍了IoC容器和控制反转的概念,通过做饭和点外卖的比喻阐述了传统方式与DI的区别。详细讲解了Spring中的BeanFactory和ApplicationContext,包括它们的实现、基于XML的两种类型以及WebApplicationContext的特色。
摘要由CSDN通过智能技术生成

IOC容器

  • IOC思想就是控制反转
    • 获取资源的传统方式
      • 用做菜吃饭举例子,我们需要自己买菜,洗菜,切菜,炒菜,我们参与全过程还要会做菜,才能吃放
      • 在应用程序中,传统的方式就是组件主动向容器获取资源,这样的话我们在使用组件的时候还要知道是哪个容器有我们想要的资源,怎么获取容器中的资源等,麻烦!
    • 反转控制的方式
      • 还是吃饭的例子,这个就相当于点外卖,下单,等,吃就完事了
      • 由容器主动向组件提供资源,不需要我们自己来获取,舒舒服服
    • DI(依赖注入)
      • DI就是IOC的一种具体实现方式
      • 比如我如果一个类有一个成员变量,它是一个实体类型属性,那就需要new一个对象,使用DI就不需要new一个对象,由IOC容器来注入这个对象,一般通过我们提前设置好的方式来注入
  • 准备工作,导入依赖
<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.19</version>
</dependency>
  • IOC容器在Spring中的实现
    • Spring的IOC容器就是IOC思想的一种实现,IOC容器中管理的组件也叫做bean,在创建bean之前,要创建IOC容器。在Spring中有两种IOC容器的实现方式
      • BeanFacory
        • 这是IOC容器的基本实现,是Spring Core的核心,只在spring内部使用
      • ApplicationContext
        • 基于BeanFactory,拥有更多的高级特性的IOC容器(用的多)
      • ApplicationContext两种基于XML实现类
        • FileSystemXmlApplicationContext
        • ClassPathXmlApplicationContext
          • 这两者的区别在于第一个是通过文件系统来寻找Xml配置文件,通过文件的特定路径(绝对路径和相对路径)来找Xml
          • 后者通过类路径来找Xml配置文件,这里的类路径就是指的是target下面的classes的路径(用的多,因为应用程序的运行环境不同,第二种获取方式更常用)
        • ConfigurableApplicationContext
          • ApplicationContext的子接口,提供了一些扩展方法比如refresh()和close(),让ApplicationContext具有启动,关闭和刷新上下文的功能
        • WebApplicationContext
          • 专门为Web应用准备的,基于Web环境创建IOC容器对象,并将对象引入存入ServletContext
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值