什么是ioc
1.什么叫ioc(1)ioc叫做控制反转,是面向对象的一种设计方式,(2)把对象的创建和对象之间的调用过程,交给spring管理。(3)目的:为了使耦合度降低(耦合度:在一个类中,我想调用另一个类的方法,就必须new另一个类,这样耦合度太高了,如果我想修改另一个类的位置,就会影响到我这一个类)在一个类中,我想调用另一个类的方法,不必生成这个类的实例,直接从spring获取,就叫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");
工厂模式
定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。
更多推荐
所有评论(0)