栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring入门第二篇IOC容器的底层原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring入门第二篇IOC容器的底层原理

IOC(概念和原理)
  1. 什么是IOC
    ( 1 ) (1) (1) 控制反转,将对象创建和对象之间的调用过程交给Spring进行管理
    ( 2 ) (2) (2) 使用IOC的目的:降低耦合度
    ( 3 ) (3) (3) 做入门案例就是IOC实现

  2. IOC的底层实现
    ( 1 ) (1) (1)xml解析、工厂模式、反射、

  3. 图解IOC的实现过程

( 1 ) (1) (1)我们平时是这样子写的

class UserService{
    excute(){
        UserDao dao = new UserDao();
        dao.add();
    }
}

class UserDao{
    public add() {
        
    }
}

( 2 ) (2) (2) 工厂模式降低代码耦合度

//降低耦合度
class UserService{
    excute(){
        UserDao dao = UserFactory.getDao();
        dao.add();
    }
}

class UserDao{
    add(){
        
    }
}
//这是工厂类
class UserFactory{
    public static UserDao getDao(){
        return new UserDao();
    }
}

( 3 ) (3) (3)将耦合度降低到最低

  • xml文件解析
  • 反射:得到字节码文件

a: 第一步xml配置文件,配置创建的对象


b: 第二步有service类和dao类,创建工厂类

//进一步降低耦合度
class UserFactor{
    public static UserDao getDao(){
        String classValue = classs属性值;//1.xml解析
        //通过反射创建对象
        Class clazz = Class.forName(classValue);
        return (UserDao)clazz.newInstance();
    }
}
IOC(接口)
  1. IOC思想基于IOC容器创建完成,IOC容器底层就是对象工厂
  2. Spring提供IOC容器实现的两种方式
    ( 1 ) (1) (1)BeanFactory: IOC容器基本使用,是Spring内部的使用接口,不提供开发人员进行使用,加载配置文件时候不会创建对象,在获取对象的时候才去创建对象
    ( 2 ) (2) (2)ApplicationContext:ApplicationContext是BeanFactory的子接口,面向开发人员进行使用
    在加载配置文件时候就完成创建对象(推荐使用)
public class TestSpring{
    public void testAdd(){
        //1.加载spring配置文件
        //2. 获取配置创建的对象
        ApplicationContext context = new classPathXmlApplicationContext(configLocation:"beanl.xml");
        User user = context.getBean(s:"user", User.class);
        System.out.print(user);
        user.add();
    }
}
  • ApplicationContext接口的实现类
    ClassPathXml:表示在src内部文件
    FileSystemXml:表示外部的文件
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/855526.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号