什么是ioc

什么叫ioc

(1)ioc叫做控制反转,是面向对象的一种设计方式,

(2)把对象的创建和对象之间的调用过程,交给spring管理。

(3)目的:为了使耦合度降低

(耦合度:我有多个service类,都需要调用一个dao类,当我修改这个dao类的位置时,则多个service类中都要修改,麻烦。尽量降低耦合度,我可以弄一个中间类,service类通过中间类调用dao类,这样当要修改dao的位置时,只用修改中间类即可)

在一个类中,我想调用另一个类的方法,不必生成这个类的实例,直接从spring获取,就叫ioc。

之前做的入门案例就是ioc的实现

ioc的底层:

ioc是一个容器,本质上就是一个对象工厂(读取配置文件,通过反射创建类)

Spring提供了 ioc 容器实现的两种方式(两个接口),

BeanFactory context= new ClassPathXmlApplicationContext("demo1.xml");
ApplicationContext context= new ClassPathXmlApplicationContext("demo1.xml");

两个接口的功能相似

1.BeanFactory

BeanFactory 是基本的实现,一般都不用,在加载配置文件 demo1.xml时,并不会创建demo1.xml中对象,在获取或使用的时候才会去创建对象
ConfigurableApplicationContext经常用于扩展该类

 <bean  id ="user" class="com.atuguigu.spring5.User"></bean>

2.ApplicationContext
ApplicationContext是BeanFactory的子类,一般用这个,加载配置文件 demo1.xml。会创建demo1.xml中对象   主要有两个实现类(就是子类),如下,

FileSystemXmlApplicationContext 文件的绝对路径
ApplicationContext context= new FileSystemXmlApplicationContext("E:\\springProject\\test1\\src\\demo1.xml");
ClassPathXmlApplicationContext  src下的路径
 ApplicationContext context= new ClassPathXmlApplicationContext("demo1.xml");

工厂模式

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值