Spring入门介绍-IOC(二)
浅谈IOC
IOC(inversion of control)是Spring的核心,贯穿始终。所谓IOC
就是有Spring来控制对象的生命周期和对象间的关系。
传统开发模式:对象之间相互依赖
IOC开发模式:IOC控制对象之间的依赖
IOC的理论背景
IOC和DI(依赖注入)
IOC是控制反转。原先对象之间的关系式相互引用的,相对耦合度很高,一个对象的损坏可能会影响许多的对象,对象对其他对象的引用是自己控制的,如果把所以控制权都交给一个外部的第三方,统一管理应用,就实现了控制反转,降低了耦合度。
DI(dependency injection)。所谓的依赖注入就是IOC容器在运行期间,动态的将某种依赖关系注入到对象之中。所以依赖注入和控制反转是从不同角度描述的同一件事情。通过引入IOC容器,通过引用对象依赖注入的方式来实现对象之间的解耦。
IOC的好处
IOC不会对业务有很强的侵入性,是对象具有更好的可实用性,可重用性,可扩展性。
1.降低组件之间的耦合度。
2.提高产品的开发效率和质量。
3.统一标准,提高模块的复用性。
4.模块具有热插拔的特性。
IOC的总结
IOC控制反转:
创建对象实例的控制权从代码转移到IOC容器控制,实际就是xml文件控制,侧重于原理。
DI依赖注入:
说的是创建对象时,为这个对象注入属性值和其他对象实例,侧重于实现。
Spring入门介绍-IOC(二)的更多相关文章
- Spring入门1. IoC入门实例
Spring入门1. IoC入门实例 Reference:Java EE轻量级解决方案——S2SH 前言: 之前学习过关于Spring的一点知识,曾经因为配置出现问题,而总是被迫放弃学习这些框架技术, ...
- Spring入门2. IoC中装配Bean
Spring入门2. IoC中装配Bean 20131125 前言: 上一节学习了Spring在JavaProject中的配置,通过配置文件利用BeanFactory和ApplicationConte ...
- Spring入门导读——IoC和AOP
和MyBatis系列不同的是,在正式开始Spring入门时,我们先来了解两个关于Spring核心的概念,IoC(Inverse of Control)控制反转和AOP()面向切面编程. 1.IoC(I ...
- Spring入门及IoC的概念
Spring入门 Spring是一个轻量级的Java开发框架,最早由Robd Johnson创建,目的为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题,它是一个分层的JavaSE/EE轻量级开源 ...
- Spring 使用介绍(二)—— IoC
一.简单使用:Hello World实例 1.maven添加依赖 <dependency> <groupId>org.springframework</groupId&g ...
- Spring入门 (IOC)
1.实现原理
- Spring入门介绍
概述 下载地址:https://repo.spring.io/release/org/springframework/spring/ spring是开源的轻量级框架 spring核心的主要两部分 AO ...
- C++ ORM ODB 入门介绍(二)
目录[-] 1. ODB中的继承类型 2. abstract和polymorphic的区别 3.polymorphic表格 4.早期版本如何实现polymorphic 5.实例 本节主要介绍ODB中的 ...
- Spring入门之IOC
IOC/DI: Spring最核心的灵魂,IOC/DI(控制反转/依赖注入)!,这里一定要理解他,理解这个思想.我会细说什么是IOC/DI.他的思想是什么.它带来了那些好处. 进入正题,先说说什么是i ...
随机推荐
- [SCOI 2016]背单词
Description Lweb 面对如山的英语单词,陷入了深深的沉思,“我怎么样才能快点学完,然后去玩三国杀呢?”.这时候睿智 的凤老师从远处飘来,他送给了 Lweb 一本计划册和一大缸泡椒,他的计 ...
- poj 2451 Uyuw's Concert
[题目描述] Remmarguts公主成功地解决了象棋问题.作为奖励,Uyuw计划举办一场音乐会,地点是以其伟大的设计师Ihsnayish命名的巨大广场. 这个位于自由三角洲联合王国(UDF,Unit ...
- SAM维护的在线LCS
题目大意: 给定两个字符串,存在三种操作,分别是在a,b串末尾加一个字符串,和询问两串的LCS 题解: Get新套路:把两串建在同一SAM上,将重合的位置合并为同一节点,再加个标记数组,如果两者的LC ...
- hdu 5636 搜索 BestCoder Round #74 (div.2)
Shortest Path Accepts: 40 Submissions: 610 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: ...
- bzoj2006 NOI2010 数据结构+堆维护区间和最大
2006: [NOI2010]超级钢琴 Time Limit: 20 Sec Memory Limit: 552 MBSubmit: 3431 Solved: 1686[Submit][Statu ...
- 使用JAXB解析xml文件(二)
前面一章简单演示了JAXB的用法,这个章节主要梳理一下JAXB常见的几个注解 1.@XmlRootElement 用于类级别的注解,对应xml的跟元素,常与 @XmlType 和 @XmlAccess ...
- Spring MVC - 表单处理示例
环境搭建 环境: Intellij IDEA Spring MVC 完整的项目文件结构如下所示: Student.java package com.ktao.controller; public cl ...
- Mac Webview OC与JS交互实现
1.首先,需要定义一个JS可识别的变量(如external)用于OC与JS交互 - (void)webView:(WebView *)sender didClearWindowObject:(WebS ...
- easing--缓动函数--贝塞尔函数--圆盘转动抽奖应用
http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js http://www.robertpenner.com/easing/penn ...
- Python小代码_11_生成小于 n 的裴波那契数列
def fib(n): a, b = 1, 1 while a < n: print(a, end=' ') a, b = b, a + b fib(100000) #输出结果 #1 1 2 3 ...