Spring框架|控制反转IoC介绍|IoC环境搭建

一、控制反转介绍

(1)控制反转的概念

控制反转(Inversion of Control,即IoC):把对象的创建、初始化、销毁等工作交给框架,是框架的重要特征。并非面向对象编程的术语。控制反转包括依赖注入依赖查找

(2)容器

由于开发时需要创建很多对象,我们需要找个集合来存储,有Map和List供选择,有查找需求就选Map。所以应用加载时,创建一个Map,用于存放三层对象,将Map称之为容器

(3)工厂

工厂就是负责帮我们从容器中获取指定对象的类。使获取对象的方式发生了改变。

①之前我们获取对象时,采用new的方式,是主动的

在这里插入图片描述

②现在获取对象时,向工厂要对象,工厂为我们查找或创建对象,是被动的

在这里插入图片描述

(4)控制反转IoC的作用

削弱计算机程序的耦合,解除代码中的依赖关系。

二、spring基于XML的IoC环境搭建

(1)applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 
		把对象的创建交给spring来管理
		id代表唯一标识
		class代表类的全限定名(包名+类名)
	 -->
	<bean id="h" class="com.gql.HelloWord"></bean>
</beans> 复制代码

(2)HelloWord.java

package com.gql;
public class HelloWord {
	/*
	 * 方法说明:
	 * 		say方法输出Hello Word!
	 */
	public void say(){
		System.out.println("Hello Word!");
	}
} 复制代码

(3)HelloWordDemo

package com.gql;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * 类说明:
 * 		测试使用Spring框架
 * @guoqianliang1998.
 */
public class HelloWordDemo {
	@Test
	public void test1(){
		HelloWord h = new HelloWord();
		h.say();
	}
	
	@Test
	public void test2(){
		//启动Spring容器,读取src下.xml文件中的信息
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		//利用Spring容器创建对象
		HelloWord h = (HelloWord)ac.getBean("h");
		h.say();
	}
} 复制代码


猜你喜欢

转载自juejin.im/post/5e4e79cc6fb9a07cb52bc0a1