Spring(三)IoC的简介和实例分析
2017-04-05 19:33
183 查看
1.Spring中IoC的简介
IoC(控制反转:Inverse of Control )
又称作依赖注入,是一种重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring 框架的核心.
2.不使用Spring的实例概要
1)编写 人的java类
2)编写 工作的java类
3)编写 测试的java类 ,该项工作是由那个人来负责
3.不使用Spring的实例分析
人的java类
工作的java类
测试的java类
执行结果
3.不使用Spring的实例下载
实例下载https://pan.baidu.com/s/1hsOJNyk
ps:使用这种方式的缺点就是工作和人的耦合性很高,当在工作中需要对人进行修改的
4000
时候,就要修改工作的代码,不利于开发。所以就有了控制反转IoC的思想,将控制权转交出来。
4.采用控制反转的实例概要
1) 接口类
2)编写 人的java类 实现接口
3)编写 工作类,由多态实现
4)编写 测试的java类 ,具体工作是由哪一个测试人负责由传入的人决定,解除了工作业务中和设置人员的耦合性
5.采用控制反转的实例分析
测试的接口
具体人的java类,这里需要实现接口Tester
现在只需要用接口对象调用方法就可以了,这里需要穿入人的对象,然后再决定调用相应的方法,应用了java的多态的特性
测试工作的例子,例子1 设置做该工作的人员是实例化的LiSi
结果如下:
当如果传递的是张三对象的时候,会调用张三的动作去执行工作
6.采用控制反转的实例下载
实例下载 https://pan.baidu.com/s/1hsOJNyk
ps:使用这种方式的优点就是耦合性低,所以我们接下来可以使用Spring容器管理bean,实现IoC.
7.Spring框架的使用来实现控制反转概要
1) Spring jar包
2)最高层的接口类
3)编写 两个人的java类 实现接口
4)编写 工作类,由多态实现 和之前的都一样
5)配置文件xml,包括实例化信息和设置属性的信息
6)编写 测试的java类 ,这里就能直接通过修改xml文件来确定到底传入的具体的人的对象是谁,就执行谁的方法
8.Spring框架的使用来实现控制反转实例分析
最高层的接口类 ,和上面的一个例子一样
两个人的java类 实现接口
工作类,由多态实现 和之前的都一样
配置文件xml,包括实例化信息和设置属性的信息
本来属性中是没有值的,通过ref注入了一个对象,就是依赖注入。
编写 测试的java类
如果xml文件中,如上图tester实例化的是lisi,那么最后调用的就是李四的工作,由他完成工作;如果xml中tester实例化的是shangsan,那么最后调用的就是张三的方法。只需要修改xml文件即可。
9.Spring框架的使用来实现控制反转实例下载
实例下载 https://pan.baidu.com/s/1hsOJNyk
IoC(控制反转:Inverse of Control )
又称作依赖注入,是一种重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring 框架的核心.
2.不使用Spring的实例概要
1)编写 人的java类
2)编写 工作的java类
3)编写 测试的java类 ,该项工作是由那个人来负责
3.不使用Spring的实例分析
人的java类
/** * 人物类 * 张三 负责测试 * @author 49882 * */ public class ZhangSan { //张三 会的工作 public void doWork(){ System.out.println("张三负责测试"); } }
工作的java类
/** * 工作类 * @author 49882 * */ public class Work { public void doTest(){ //对象 张三做测试 ZhangSan zhangSan =new ZhangSan(); zhangSan.doWork(); } }
测试的java类
import com.hlf.service.Work; /** * 测试工作类 例子 * @author 49882 * */ public class testWork { public static void main(String[] args) { Work work=new Work(); work.doTest(); } }
执行结果
3.不使用Spring的实例下载
实例下载https://pan.baidu.com/s/1hsOJNyk
ps:使用这种方式的缺点就是工作和人的耦合性很高,当在工作中需要对人进行修改的
4000
时候,就要修改工作的代码,不利于开发。所以就有了控制反转IoC的思想,将控制权转交出来。
4.采用控制反转的实例概要
1) 接口类
2)编写 人的java类 实现接口
3)编写 工作类,由多态实现
4)编写 测试的java类 ,具体工作是由哪一个测试人负责由传入的人决定,解除了工作业务中和设置人员的耦合性
5.采用控制反转的实例分析
测试的接口
/** * 测试的接口 * @author 49882 * */ public interface Tester { public void doWork(); }
具体人的java类,这里需要实现接口Tester
/** * 人物类 * 李四 负责测试 * @author 49882 * */ public class LiSi implements Tester{ //李四 会的工作 public void doWork(){ System.out.println("李四负责测试"); } }
现在只需要用接口对象调用方法就可以了,这里需要穿入人的对象,然后再决定调用相应的方法,应用了java的多态的特性
package com.hlf.service; /** * 工作类 * @author 49882 * */ public class Work { Tester tester; //设置测试员 public void setTester(Tester tester) { this.tester = tester; } public void doTest(){ /*//对象 张三做测试 ZhangSan zhangSan =new ZhangSan(); zhangSan.doWork();*/ //现在只需要用接口对象调用方法就可以了 tester.doWork(); } }
测试工作的例子,例子1 设置做该工作的人员是实例化的LiSi
/** * 测试工作类 例子 * @author 49882 * */ public class testWork { public static void main(String[] args) { Work work=new Work(); // work.setTester(new ZhangSan()); work.setTester(new LiSi()); work.doTest(); } }
结果如下:
当如果传递的是张三对象的时候,会调用张三的动作去执行工作
6.采用控制反转的实例下载
实例下载 https://pan.baidu.com/s/1hsOJNyk
ps:使用这种方式的优点就是耦合性低,所以我们接下来可以使用Spring容器管理bean,实现IoC.
7.Spring框架的使用来实现控制反转概要
1) Spring jar包
2)最高层的接口类
3)编写 两个人的java类 实现接口
4)编写 工作类,由多态实现 和之前的都一样
5)配置文件xml,包括实例化信息和设置属性的信息
6)编写 测试的java类 ,这里就能直接通过修改xml文件来确定到底传入的具体的人的对象是谁,就执行谁的方法
8.Spring框架的使用来实现控制反转实例分析
最高层的接口类 ,和上面的一个例子一样
package com.hlf.service;
/** * 测试的接口 * @author 49882 * */ public interface Tester { public void doWork(); }
两个人的java类 实现接口
/** * 人物类 * 张三 负责测试 * @author 49882 * */ public class ZhangSan implements Tester{ //张三 会的工作 public void doWork(){ System.out.println("张三负责测试"); } }
/** * 人物类 * 李四 负责测试 * @author 49882 * */ public class LiSi implements Tester{ //李四 会的工作 public void doWork(){ System.out.println("李四负责测试"); } }
工作类,由多态实现 和之前的都一样
/** * 工作类 * @author 49882 * */ public class Work { Tester tester; //设置测试员 public void setTester(Tester tester) { this.tester = tester; } public void doTest(){ //现在只需要用接口对象调用方法就可以了 tester.doWork(); } }
配置文件xml,包括实例化信息和设置属性的信息
本来属性中是没有值的,通过ref注入了一个对象,就是依赖注入。
编写 测试的java类
/** * 测试工作类 例子 * @author 49882 * */ public class testWork { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("Spring.xml"); Work work=(Work) context.getBean("work"); work.doTest(); } }
如果xml文件中,如上图tester实例化的是lisi,那么最后调用的就是李四的工作,由他完成工作;如果xml中tester实例化的是shangsan,那么最后调用的就是张三的方法。只需要修改xml文件即可。
9.Spring框架的使用来实现控制反转实例下载
实例下载 https://pan.baidu.com/s/1hsOJNyk
相关文章推荐
- (2) spring核心概念IOC/DI实例分析
- Spring IoC原理实例分析
- Spring Ioc 源码分析(二)- bean的实例化
- JavaEE经典试题(七) Spring的IOC简介
- Spring中IoC的入门实例详解
- Spring中IoC的入门实例
- Spring中IoC的对比分析
- Spring中IoC的入门实例
- Spring 框架简介(Spring AOP 和 IOC 容器入门)
- 对Spring中接口注入的理解实例分析
- spring实例化IOC容器
- Spring 系列: Spring 框架简介----Spring AOP 和 IOC 容器入门
- 第二章 Spring中IoC的入门实例
- Spring的Ioc简单使用实例(含XML配置文件路径知识)
- Spring中IoC的入门实例
- Spring的IOC简单实例
- Spring学习笔记:第二章 Spring中IoC的入门实例
- 第二章 Spring中IoC的入门实例
- Spring源代码分析之(二):IOC容器在web容器中的启动
- Spring中IoC的入门实例详解