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();
	}
} 复制代码

推荐阅读:

【备战春招系列】关于kafka,BAT大厂都喜欢怎么问?

【备战春招系列】ZooKeeper灵魂28问,教你如何搞定面试官!

【备战春招系列】最新Linux 面试真题45道

【备战春招系列】历年来关于MySQL高频面试真题的梳理

【备战春招系列】springBoot灵魂22问!

【备战春招系列】50道微服务面试真题详解

【备战春招系列】27道MyBatis面试真题详解

大厂resdis灵魂40问,教你如何搞定面试官

更多技术文章和面试真题可以关注微信公众号:Java程序员聚集地。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值