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

IOC概念和原理

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

IOC概念和原理

1.什么是IOC


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


2.IOC的底层原理

 

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

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

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

建一个工厂类

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

3.IOC过程

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

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实现类

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/287066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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