Spring - IOC底层原理

1、什么是IOC

(1)控制反转,把对象的创建和创建对象的过程交给Spring进行管理
(2)使用目的主要是为了降低代码耦合

2、 ICO的底层原理

1、工厂模式、XML、反射

	//需要被使用的对象
	class UserDao{
		add(){
			.....
		}
	}
	//工厂类
	class UserFactory{
		public static UserDao getUserDao(){
			return new UserDao();
		}
	}
	//调用类
	class UserService{
		execute(){
			//由工厂类获得所需对象,耦合度降低
			UserDao dao = UserFactory().getUserDao();
			dao.add();
		}
	}

2、IOC实现解耦的过程

	//第一步 : xml配置文件中,配置创建对象
	<bean id="对象id(唯一)" class="需要创建的对象的全路径">
	//第二步:创建工厂类
	class UserFactory{
		public static UserDao getUserDao(){
			//1、xml解析
			String classValue = xml中bean的class属性值;
			//2、通过反射来创建对象
			Class clazz = Class.forName(classValue);
			//3、创建对象 (使用配置文件以及反射实现进一步降低耦合)
			return (UserDao)clazz.newInstance();
		}
	}

3、IOC(接口)

1、IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2、Spring提供了IOC容器实现的两种方式:(两个接口)
(1)BeanFactory:IOC容器的基本实现方式,是Spring内部使用的接口,一般不使用这个接口
特点: 在加载配置文件时不会创建对象,在使用(获取)对象的时候才会去创建对象
(2)ApplictionContext:是BeanFactory接口的子接口,提供更多更强大的功能。
特点: 在加载培训文件时,会把配置文件中所有的bean都会去创建对象
(3)ApplictionContext接口的实现类

  • ClassPathXmlApplication Context:只需填写项目下配置文件的路径
ApplicationContext	context = 
		new ClassPathXmlApplicationContext("配置文件名称");
		
对象  对象名 = context.getBean("bean的id",对象.class);

  • FileSystemXmlApplicationContext:在使用时需要写上配置文件在电脑系统中的盘符全路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值