SpringIOC控制反转02

一、简介

SpringIOC控制反转又称为依赖注入,是一种重要的面向对象编程法则,作用是消减耦合问题,是轻量级Spring框架的核心。

控制反转——Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

二、SpringIOC实例

首先写一个没使用spring的实例

ec24093a3419b80b157a9364cf1e82139d9.jpg张三、李四两个人,javaWork派谁去做测试,最后在Test打印出来

比如张三做测试

697ba852b400b8185d292fc482ca6a82101.jpg

8c02e6363b84badd557a9c5b6fa5c1d982f.jpg

然后Test打印出来

62422987434b1acc497f40a9bbddb22fc8d.jpg

可是当我们需要李四做测试时,JavaWord.java要全部改变

83ee6538d76923382099cb6c79a7d55bc1c.jpg打印137591af5bb07aa1ecd4ad3801294719b02.jpg

这样的话每当我们换一个人都要重写new一个对象,破坏程序完整性,麻烦,使用springIOC控制反转(依赖注入)换人工作就简单很多

首先我们定义一个接口Tester,里面由一个test()方法

ffb287981795ad6f44beebf75b76a877b81.jpg

然后张三李四都继承接口并且实现里面的test()方法

zhangsan

415f0a58ac5bac694037de8862f8907d021.jpg

lisi

eb9bb1cc2552f09ea4c7b6c5b99fbcc1ee9.jpg

然后在JavaWork定义一个Tester,有set方法

988c553345a14096b336ba2133f40cdc074.jpg

最后在Test中的main方法中确定谁做测试

 

5d8fc113c202e7c2ee0b1ec01f0876d3e4e.jpg

张三测试

1d4d6f11a6323b0fa1984ace1bcf5780e08.jpg

 

这样还不是很方便,我们可以用bean.xml管理对象实例

bean.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">

    <bean id="zhangsan" class="com.java.service.zhangsan"> </bean>
    
     <bean id="lisi" class="com.java.service.lisi"> </bean>
     
      <bean id="javawork" class="com.java.service.JavaWork"> 
      
      <!-- 这里的那么要和定义的private Tester tester;名字相同不然会报错 -->
       <!-- 这里的依赖注入ref="", 把李四或者张三对象注入进去-->
       
      	<property name="tester" ref="zhangsan"></property>
      </bean>
  
  
  
</beans>

 

Test.java

package com.java.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.java.service.JavaWork;

public class Test {
	
	public static void main(String[] args) {
		ApplicationContext ac=new ClassPathXmlApplicationContext("beans.xml");
		JavaWork javaWork=(JavaWork)ac.getBean("javawork");
		javaWork.doTest();
	}
}

这样我们需要谁做测试,不需要改动任何代码,只需要修改配置文件

67a38f6edfd14bc3a4c52c26e4818f56b4a.jpg

转载于:https://my.oschina.net/u/3848699/blog/2243931

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值