Spring之IOC概念

一、什么是IOC

        1.IOC就是控制反转,把对象创建和对象之间的调用过程交给Spring进行管理。

        2.使用IOC目的:

        之前我们创建对象的方式都是用new的方式创建,这个方式有个缺点,被创建对象的类的位置一旦被改动,new就会报错,类与类之间的关联度太大,为了降低耦合度,将创建对象交给IOC容器处理。

二、IOC底层原理

        1.运用主要技术包括:xml解析、工厂设计模式、反射

        2.IOC简要过程(理解):

        IOC主要是通过内部工厂类解析配置文件id属性对应的class属性,利用反射Class.forName()方法,参数是class属性值,来回去对应的类,进而获取对象

  (1).在Spring xml配置文件里配置id与类的对应关系

<bean id="dao" class="com.qjb.dao.UserDAO"></bean>

   (2).通过一个工厂类,获取对象

Class UserFactory{
    public static UserDAO gerDAO(){
        String classValue = class属性值; //xml解析
        Class clazz = Class.forName(classValue);//反射创建对象
        return (UserDAO)clazz.newInstance();
    }
}

三、IOC接口

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

        2.Spring提供IOC容器实行两种方式

       (1).BeanFactory:IOC容器实现,是Spring内部使用的接口,不提供给开发人员,此实现一般使用哪个Bean的时候才去创建

       (2).ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,供开发人员使用,此实现与BeanFactory相反,他是容器启动时一次性创建所有的Bean

四、简单案例

<!--XML配置文件bean1.xml-->
<bean id="user" class="com.atqjb.Spring5.User"></bean>
package com.atqjb.Spring5;

public class User {
    public void add(){
        System.out.println("add......");
    }
}
@Test
public void testAdd(){
    //1加载spring配置文件
    ApplicationContext context =
            new ClassPathXmlApplicationContext("bean1.xml");
    //获取配置创建对象
    User user = context.getBean("user", User.class);
    System.out.println(user);
    user.add();
 }

7c9769873e9543a8a0fdbcb09f7e192a.png

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值