spring IOC容器(一)

IOC(概念和原理)

  1. 什么是IOC
    1)控制反转,把对象创建和对象之间的调用过程,都交给spring进行管理
    2)使用IOC的目的:为了耦合度降低

  2. IOC底层原理
    1)xml解析、工厂模式、反射

  3. 图示:
    在这里插入图片描述

IOC接口

  1. IOC思想基于IOC容器完成,IOC容器底层就是对象工厂

  2. spring提供IOC容器实现两种方式: (两个接口)
    1) BeanFactory:IOC容器基本实现,是spring内部的使用接口,不提供开发人员进行使用。
    *加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
    2) ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般是由开发人员进行使用
    *加载配置文件时就会把在配置文件中的对象进行创建

  3. ApplicationContext接口有实现类

IOC操作Bean管理(概念)

1、什么是Bean管理
Bean管理指的是两个操作

  1. spring创建对象
  2. spring注入属性

2、Bean管理操作有两种方式
1)基于xml配置文件方式实现
2)基于注解方式实现

IOC操作Bean管理(基于xml方式)

1、基于xml方式创建对象
1)在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
2)在bean标签里有多个属性,介绍常用的属性
*id属性:唯一标识
*class属性:类全路径(包 类路径)

3)创建对象的时候,默认也是执行无参数构造方法完成对象创建

2、基于xml方式注入属性
1)DI:依赖注入,就是注入属性
3、第一种注入方式:使用set方法进行注入
1)创建类,定义属性和对应的set方法
4、第二种注入方式:使用有参数构造进行注入
1)创建类,定义属性,创建属性对应有参数构造方法
2)在spring配置文件中进行配置
在这里插入图片描述

5、p名称空间注入
1)使用p名称空间注入,可以简化基于xml配置方式
在这里插入图片描述

IOC操作Bean管理(xml注入其他类型属性)

1、字面量
1)null值
在这里插入图片描述

2)属性值包含特殊符号
在这里插入图片描述
2、 注入属性-外部bean
1)创建两个类service类和dao类
2) 在service调用dao里面的方法
3)在spring配置文件中进行配置
在这里插入图片描述
在这里插入图片描述

3、注入属性-内部bean和级联赋值
1)一对多关系: 部门和员工
一个部门有多个员工,一个员工属于一个部门
2)在实体类之间表示一对多的关系

 private String ename;
    private String gender;

    //员工属于某一个部门,使用对象形式表示
    private Dept dept;

    public void setDept(Dept dept) {
        this.dept = dept;
    }

    public void setEname(String ename) {
        this.ename = ename;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

3)在spring配置文件中进行配置

<?xml version="1.0" encoding="UTF-8"?>
<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">

  <!-- 内部bean-->
    <bean id="emp" class="bean.Emp">
       <!-- 设置两个普通属性 -->
        <property name="ename" value="lucy"></property>
        <property name="gender" value=""></property>
        <!-- 设置对象类型属性 -->
        <property name="dept">
            <bean id="dept" class="bean.Dept">
                <property name="dname" value="安保部"></property>
            </bean>
        </property>
    </bean>
</beans>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值