IOC概念和原理

目录

1.什么是IOC

2.IOC的底层原理

3.IOC过程

4.IOC总结


​​​​​​​

1.什么是IOC

 


IOC即为控制反转,把对象的创建和对象之间的调用过程,交给Spring管理。不需要像se阶段一样new对象。
使用IOC的目的:为了降低耦合度。所谓耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准。


2.IOC的底层原理

假如有以上俩个类,传统创建对象我们需要在UesrService类中调用uesrDao中add方法需要先在UesrService中new uesrDao的对象,再调用方法。

传统创建对象致命问题:耦合度高,关联过于紧密,牵一发动全身。

为了降低耦合度,解决方案如下文。

建一个工厂类

 通过工厂的设计模式,在UserFactory中返回创建的对象,对象在工厂中得到。这个过程只是降低了UserService和UserDao的耦合度,没有降低到最大限度。此时需要ioc。

3.IOC过程

1.配置xml文件,配置要创建的对象

<bean id="名字" class="路径"></bean>

2.假如有上service类和dao类,创建工厂类

class UserFactory {
public static UserDao getDao() {
String classValue=class属性值;      //通过xml解析得到class的值
 
//通过反射得到对象
 
Calss clazz=class.forName(classValue);
 
return  (UserDao)clazz.newInstance();   //调用newInstance方法此时返回的也是UserDao对象
}
}


 

此时只要修改xml的配置文件,就可以通过工厂返回对象。耦合度进一步降低。

用Spring框架就是简化代码,把耦合度降低。

4.IOC总结

1.IOC本质是个容器,本质上是对象工厂,通过读取配置文件,再通过它用反射来完成。

2.Spring提供的IOC容器的俩种实现方式(俩个接口):

public class Spring5Test {
    @Test
    public  void test(){
 
        //加载spring配置文件,ApplicationContext 在加载配置文件时就会创建对象,BeanFactory在下面获取创建对象的时候才会创建对象
        ApplicationContext context =new ClassPathXmlApplicationContext("bean1.xml");
 
        //获取配置创建的对象,BeanFactory在此时才会创建对象
        User user=context.getBean("user",User.class);
 
        user.add();
    }
 
}

1.BeanFactory:IOC容器基本实现方式,Spring内部使用接口,一般不提供开发人员使用。

特点:加载配置文件,不会去创建对象。在获取或使用对象时才创建对象。

2.ApplicationContext:可以理解成BeanFactory子接口,比BeanFactory更加强大。面向开发人员。

特点:加载配置文件,就会去创建对象。一般使用第二种。

3.ApplicationContext实现类

 

  • 16
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今天你学习了ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值