Spring-IOC本质
一. IOC
1.1 IOC原型
业务1:在三层架构中我们是如何实现一个具体操作业务?
1.创建如下的项目:
2.dao层
在dao层下有一个接口UserDao,该接口下有一个getUserInfo()
3.service层
service层就是业务层,给表示层提供业务,通过dao层实现相应业务。
4.表示层
用测试类来做为表示层,表示层通过业务层实现具体业务。
最后通过表示层返回信息给用户:
业务2:如果要从多个不同的数据库中获取信息,这时候应该怎么处理呢?
1.在dao层中添加不同数据库实现类:
Mysql实现类:
SqlServer实现类:
2.业务层中要通过哪一种方式获取数据就调用哪一种实现类:
调用SqlServer实现类:
调用Mysql实现类:
3.表示层无任何变化
但是获取得结果不一样:
从上面的二个业务,不难发现如果要实现多种不同实现方式的话需要自己手动对业务层进行修改,这样的话就不是用户在控制程序,而是程序在控制用户的选择,显然这样不行。
在业务层中我们可以通过set方法来解决这一问题:
控制层通过对业务层相应参数进行初始化,就可以做到用户控制程序选择实现方式。
总结:上面这种方式是一种思想,以前要实现这样的方式要通过程序员来创造对象进行实现,使用了set注入就不用再去管理对象的创建了,这样系统的耦合性大大降低,可以更加专注在业务的实现上,这就是IOC的原型。
程序控制用户,具体流程图如下图所示:
用户控制程序,具体流程图如下图所示:
1.2 IOC本质
IOC(控制反转):是一种通过描述((XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是loC容器,其实现方法是依赖注入(Dependency Injection,DIl),依赖注入通过set访问器进行实现。
Spring-IOC本质相关推荐
- spring Ioc本质
IOC的本质: 控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法 也有人认为DI只是IoC的另一种说法. 没有IoC的程序中 , 我们 ...
- 【Spring】IOC理论推导、IOC本质
1. IOC理论推导 1. UserDao接口 2. UserDaoImpl实现类 3. Userservice业务接口 4. UserserviceImpl业务实现类 在之前的业务中,用户的需求可能 ...
- 详解(Spring Ioc)本质 DI
Ioc本质 控制反转Ioc,是一种设计思想,而不是一种新的技术.DI(依赖注入)是实现Ioc的一种方法,也有人认为DI只是Ioc的另一种说法.在没有Ioc的程序中,使用面向对象编程,对象的创建与对象之 ...
- Spring学习笔记1:IOC本质和依赖注入
文章目录 1.IOC本质 1.1.拓展:关于Spring Boot 和 Spring Cloud 2.HelloSpring 3.IOC创建对象的方式 4.Spring配置 4.1.别名 4.2.Be ...
- 头条一面:Spring IOC容器中只存放单例Bean吗?
最近,很多小伙伴出去面试,感觉自己面的不是很理想,回来后,不少小伙伴把面试题做了记录发给我,让我给大家解析下,然后发出来.当我看到这些面试题时,快速在脑海中构建起了整个知识体系,从基础到框架.从分布式 ...
- 彻底理解Spring IOC和DI
目录 前言 1. 分享Iteye的开涛对Ioc的精彩讲解 1.1 IoC是什么 1.2 IoC能做什么 1.3 IoC和DI 2. 分享Bromon的blog上对IoC与DI浅显易懂的讲解 2.1 I ...
- Spring(2)——Spring IoC 详解
Spring IoC 概述 IoC:Inverse of Control(控制反转) 读作"反转控制",更好理解,不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控 ...
- Spring —— IoC 容器详解
引言 本篇博客总结自官网的<The IoC Container>,其中会结合王富强老师的<Spring揭秘>融入自己的语言和理解,争取通过这一篇文章彻底扫除spring IOC ...
- JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(6):Spring IOC容器学习(概念、作用、Bean生命周期)...
一.IOC控制反转概念 控制反转(IOC)是一种通过描述(在Java中可以是XML或者是注解)并通过第三方去生产或获取特定对象的方式. 主动创建模式,责任在于开发者,而在被动模式下,责任归于Ioc容器 ...
- Spring – IoC 容器
Spring IoC 容器是 Spring 框架的核心.容器将创建对象,将它们连接在一起,进行配置,并管理从创建到销毁的整个生命周期.Spring 容器使用依赖项注入(DI)来管理组成应用程序的组件. ...
最新文章
- spring-boot注解详解(五)
- finereport字段显示设置_如何在Excel中显示和编辑中文拼音字段
- C++根据.h文件批量生成需要的函数框架
- Centos7(Ubuntu)密码登录失败锁定设置(亲测)
- 网易云音乐云盘上传歌词的方法
- 多功能工具箱微信小程序源码下载-操作简单
- 更改文件扩展名HTML,文件的后缀名怎么改|更改文件后缀名的方法
- typroa 思维导图_Markdown转思维导图及Typora导出opml(pandoc)
- 洞烛幽微系列 之 梯度 散度 旋度
- 转帖-在Eclipse中开发JSF
- 《计算机网络》-- 第一章 概述
- when函数c语言,when表达式
- linux kobject 原理,Linux设备驱动模型 - kobject原理与实例分析_Linux编程_Linux公社-Linux系统门户网站...
- 微信授权登陆【yixiyun】
- 小升初 择校简历标准
- Elastic认证特训营 难点解读04——集群问题排查实战指南
- 基于java的社区志愿者服务系统
- 益交易德勤 区块链在全球公司的战略中 根深蒂固
- spotlight安装使用
- c++ 75道逻辑题(面试宝典)
热门文章
- 百度谭中意:我和开源20年
- 【手写数字识别】基于matlab GUI BP神经网络手写数字识别(导图+带面板)【含Matlab源码 320期】
- 【协同任务】基于matlab蚁群算法多组群UAV协同任务路径规划【含Matlab源码 1578期】
- 【表盘识别】基于matlab Hough变换指针式仪表识别(倾斜矫正)【含Matlab源码 1058期】
- 【游戏】基于matlab绘制滚动点阵字幕(跑马灯)【含Matlab源码 911期】
- 【瑕疵检测】基于matlab GUI OTSU织物疵点检测【含Matlab源码 860期】
- 【路径规划】基于matlab GUI改进的DWA算法机器人静态避障路径规划【含Matlab源码 678期】
- 如何更新计算机的flash player,如何在win7电脑中Adobe Flash Player自动更新?
- maven实战 源码_Docker与Jib(maven插件版)实战
- 贝叶斯公式的图形记忆