【Spring】IOC

在这里插入图片描述

IOC是什么?

控制反转,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。 百度百科

Spring IOC是什么?

Spring IOC是通过DI(依赖注入)实现的。
org.springframework.context.ApplicationContext接口代表Spring IoC容器,并负责实例化,配置和组装Bean。容器通过读取配置元数据来获取有关要实例化,配置和组装哪些对象的指令。配置元数据以XML,Java批注或Java代码表示。它使您能够表达组成应用程序的对象以及这些对象之间的丰富相互依赖关系。

  • 注入方式
  1. 构造方法注入
    此方法注入属于强制依赖项

    <bean id="studentService" class="StudentService">
         <constructor-arg ref="studentDao"/>
    </bean>
    

    循环依赖问题:springIOC容器会检测循环引用,抛出BeanCurrentlyInCreationException

  2. setter方法注入
    创建对象时没有明确的限制,可以直接使用默认构造函数; 如果有某个成员必须有值,则获取对象是有可能set方法没有执行。

    <bean id="accountService2" class="com.itheima.service.impl.AccountServiceImpl2">
           <property name="name" value="TEST" ></property>
           <property name="age" value="21"></property>
           <property name="birthday" ref="now"></property>
     </bean>
    
  3. 接口方式

容器实现

  • BeanFactory: IOC 容器的基本实现.
  • ApplicationContext:提供了更多的高级特性.是BeanFactory的子接口.
    BeanFactory 是Spring框架的基础设施,面向Spring本身;ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都直接使用 ApplicationContext 而非底层的BeanFactory。
    ApplicationContext的主要实现类:
  1. ClassPathXmlApplicationContext:从类路径下加载配置文件,要求配置文件必须在类路径下(常用)
  2. FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)
  3. AnnotationConfigApplicationContext:它是用于读取注解创建容器的,是明天的内容。
    ConfigurableApplicationContext扩展于ApplicationContext,新增加两个主要方法:refresh()和close(), 让 ApplicationContext具有启动、刷新和关闭上下文的能力。
    ApplicationContext 在初始化上下文时就实例化所有单例的Bean。
    WebApplicationContext是专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值