Spring_IOC容器


一、底层原理——目的:降低耦合度

IOC容器本质上就是对象工厂,先读取配置文件,再通过反射创建对象

1、XMl解析

2、工厂模式

3、Java反射

4、代码示例:

代码如下(示例):

class UserFactory{
	public static UserDao getDao(){
		String classValue=class属性中的值;		//xml解析
		Class clazz=Class.forName(classValue);	//通过反射创建对象
		return (UserDao)clazz.newInstance();
	}
}

二、 接口——两种IOC容器实现方式

1、BeanFactory

(1)IOC容器的基本实现,是Spring内部的使用接口,不提供开发人员进行使用
(2)加载配置文件时,不会立即创建bean对象,只有在获取对象或使用对象的时候才会去创建对象。

2、ApplicationContext

(1)BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用。(应该类似于懒加载)
(2)加载配置文件时,会立即创建配置文件里的bean对象,无论使用与否

ApplicationContext接口的实现类

ApplicationContext接口实现类
使用FileSystemXmlApplicationContext时需要给配置文件在系统中的绝对路径
使用ClassPathXmlApplicationContext时只需要给在项目中src下的配置文件的路径即可

3、总结:

两者都可以加载Spring配置文件

以下两种使用方法产生的结果类似

使用ApplicationContext:

 ApplicationContext context= new ClassPathXmlApplicationContext("bean1.xml");

使用BeanFactory:

 BeanFactory context= new ClassPathXmlApplicationContext("bean1.xml");

但是ApplicationContext可以让所有该加载的对象在服务器启动时就加载完成。(慢可以,慢对地方就行)以此可以避免服务器的使用过程中卡顿,提高用户的使用体验。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值