spring基础概念1
来源:互联网 发布:爱知中学高中部怎么样 编辑:程序博客网 时间:2024/06/06 15:50
一,什么是控制反转?
控制反转是容器装配组件的一种模式,即IOC,Martin Fowler深入探索了“控制反转”的工作原理,并为其起了一个新的名字“依赖注入”,即DI。
但从字面上很难理解“控制反转”所表达的含义,其实在编程时,开发人员常说的“实现必须依赖抽象,而不是抽象依赖实现”就是“控制反转”的一种表现方式。
通过IOC来实现业务逻辑从数据库中取数据的问题可能有3种:
1.从SQL Server数据库中取数据
2.从DB2数据库中取数据
3.从Oracle数据库中取数据。
二,举例说明为什么要通过从IOC来实现业务逻辑从数据库中取数据?
(1)以从SQL Server数据库中取数据为例具体步骤如下:
1.先编写一个从数据库中取数据的类SqlServerDataBase.java
2.业务逻辑类Business.java通过SqlServerDataBase.java中的方法从SQL Server数据库中取数据。
以上程序编写的不足:Business类依赖于SqlServerDateBase类,如果业务改变,用户要求从DB2或Oracel数据库中 取数据,则这个程序就不适用了,必须要修改Business类。
(2),以从DB2数据库中取数据为例,具体步骤如下:
1.编写一个从DB2数据库取数据的类DB2DataBase类
2.因为改为从DB2数据库中取数据,所以业务逻辑类Business.java通过DB2DataBase.java中的方法从DB2数据库中取数据。
(3)同样这时,用户要求从Oracle数据库中取数据,这个程序就不适用了,方法也如上
得出的总结:这不是一个好的设计,因为每次业务需求的变动都需要程序的大量修改,我们可以通过IOC来解决这个问题,它可以通过面向抽象编程来改变这种情况。
通过IOC来实现这个功能的具体步骤如下:
1.编写获取数据的接口DataBase
2.编写一个从SQL Server数据库中取数据的类SqlServerDataBase,该类实现了接口DataBase
3.编写一个业务逻辑类Business,该类只针对DataBase编码,而不是针对实体类。
4.编写测试类TestBusiness
通过这种方式Bussiness类就可以得到重用,不管从哪个数据库中获取数据,Business类都不需要改动,只需要实现具体的DataBase接口即可。
例如,用户要求改为从DB2数据库中获取数据,只需要实现一个具体负责从DB2数据库中取数据的类就可以了。
5.编写具体负责从DB2数据库中取数据的类DB2DataBase,该类实现了接口DataBase
6.业务逻辑类Business不用做任何的改动,只需修改测试类TestBusiness
如果用户又要求改为从Oracle数据库中获取数据 ,方法如上。
总结:通过接口来编程,实现了控制反转,并且使代码获得了重用,这也就是所说的“实现必须依赖抽象,而不是抽象依赖实现”。以上的例子就是采用Set注入的方式。
- spring基础概念1
- Spring基础:快速入门spring(1):基础概念
- Spring基础概念
- Spring框架基础概念
- Spring基础概念
- spring aop基础概念
- Spring基础-上-概念篇
- Spring事务管理(基础概念)
- Spring(一)Spring框架基础概念
- spring学习笔记1——部分基础及概念
- Springframework(一)spring基础概念介绍
- Spring复习(一)基础概念
- Spring - Bean的概念及其基础配置
- Spring框架学习之一基础概念了解
- Springframework(一)spring基础概念介绍
- Spring事务管理基础概念讲解 (重点)
- Spring:1、概念理解
- 网格基础概念(1)
- Service学习之路(03)之绑定本地Service并与之通信
- 维纳滤波
- Apache Curator入门实战
- 设计模式-行为设计模式:备忘录模式 Memento
- Android传输数据时加密详解
- spring基础概念1
- 系统性能监控利器-collectd详解
- 如何获取注册高德Key使用的SHA1值与包名?
- 滤波电容的选择
- cocos2dx Android.mk 文件,批量获取cpp文件小工具
- 【Unity】那些你不得不用的好插件!
- Android工具类 全国省市的Json文件
- mpi错误
- 官网常用 gulp配置文件