Spring框架——IOC

 一、什么是IOC(Inversion of Control)控制反转

IOC是一种设计思想,是为了降低代码耦合出现,为了方便理解也可以用“依赖注入”来解释。

IOC思想解决的场景是:

        存在两个类,class A 和 class B ,若想要在A中使用B的属性和方法,那么常规的解决方法是在A中创建一个B类的对象b,通过对象b来调用属性或方法。这可以说是类A依赖于类B,A的对象a依赖于B的对象b。而IOC思想反转了这种依赖关系。

IOC的底层实现涉及到了三个部分:xml解析,对象工厂和属性注入。 

那么首先我们需要解决三个问题:

一、IOC容器创建的是什么对象

二、IOC容器如何管理对象

三、IOC容器如何实现依赖关系

第一个问题——SpringBean

        IOC容器中的对象为bean对象。spring启动时,bean对象就会被IOC容器创建并调用。

        对于创建springbean对象,IOC容器提供了两种实现方式,BeanFactory & ApplicationFactory

  • BeanFactory在加载配置文件时并不创建对象,程序使用这个对象时才创建它
  • ApplicationFactory在加载配置文件时创建对象。相当于在准备阶段就由服务器完成对象创建工作,在程序运行过程中不需要再分配资源,以提高效率。因此多使用ApplicationFactory实现方法。

第二个问题——管理对象包含了两种含义:创建对象和属性注入

class A(){
    private int age;
}

class B(){
    A a = new A();//创建对象
    a = A(18);//属性注入
}

        以一种简单的方式来理解属性注入,其实就是给属性赋值。Spring提供了两种管理对象的方式,一种是通过xml配置文件,一种是通过注解。

(一)通过配置文件xml来创建和管理bean对象

  • 1.1创建对象
//有类User

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

<!--配置User对象创建-->
    <bean id = "user" class="com.spring.User"> 
    <!--id为bean对象在IOC容器中的唯一标识,class为类路径-->
    </bean>

</beans>
  • 1.2注入属性(为创建的bean对象的属性赋值) 
    • 常规的注入属性的方式有两种,一种是通过set方法给对应的属性赋值;另一种是通过有参构造函数,在创建对象的同时进行赋值。对应这两种方式,配置文件分别提供了一种标签来完成属性注入。

1.2.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值