Spring学习(一)-IOC

Spring学习(一)-IOC

–2020年06月24日

一、IOC的概念

  1. 概念:

    Inversion of Control ,控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。

    之前我们创建对象是使用User user = new User(); 这样的形式,是我们主动创建的,但是使用IOC之后,我们不再创建对象,而是由Spring来创建,我们直接使用User对象就可以了,如下示例:

    	   //1、加载Spring配置文件
           ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
       
           //2、获取配置文件创建的对象
           User user = context.getBean("user", User.class);
    
  2. 目的:

    降低耦合度

二、IOC底层原理

利用XML解析、工厂模式、反射实现。

第一步:

xml配置文件,配置创建的对象。

<bean id="dao" class="com.ligangit.UserDao"></bean>

第二步:

在UserService类中调用UserDao类,创建工厂类。

class UserDaoFactory{
    public static UserDao getDao(){
        String classValue = "com.ligangit.UserDao";  //1、xml解析,得到class属性值
        Class clazz = Class.forName(classValue); //2、通过反射创建对象
        return (UserDao)clazz.newInstance();
    }
}

在UserService中使用

UserDao dat = UserDaoFactory.getDao();

三、IOC容器实现方式:(两个接口)

  • BeanFactory:IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用,加载配置文件的时候不创建对象,在获取对象(使用)才去创建,比较费时,但是省内存
  • ApplicatonContext:BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员使用,加载配置文件的时候创建对象,可以在服务器启动的时候完成所有需要对象的创建,让耗时耗资源的操作,都交给服务器去做,所以这个接口比BeanFactory更好
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值