Spring:笔记整理(2)——IOC容器
IOC容器
什么是IOC
说明
IOC ,全称Inversion of control,即,控制反转,是一种设计思想。
控制: 在Java中,IOC意味着:你将设计好的对象交给容器控制,而不是传统的在你的对象内容直接控制。 在传统程序设计中,我们直接在对象内容通过new创建对象。而IOC是有一个 专门的容器来创建这些对象,即由IOC来控制对象的创建。
反转: 容器帮助我们查找及注入依赖对象,对象只是被动的接受依赖对象。
图示:
当有了IOC/DI容器后,我们就不用在客户端中主动创建这些对象了:
Ioc容器
说明
IOC不是一种技术,而是一种思想。传统应用程序都是我们在类的内容部主动创建依赖对象,从而导致了类与类之间的高耦合,难于测试,现在我们有了IOC容器,把创建和查找依赖对象的控制权交给了容器,由容器进行注入对象组合,所以对象与对象之间是松散耦合,这样也方便测试,利于功能复用,更重要的是使应用程序的着呢个体系结构变的更加灵活。
IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象之间的依赖。
IOC容器通过 读取配置文件中的配置元数据,对应用中的各个对象进行实例化及装配。
一般用XML文件作为配置我文件,由于Spring与配置文件之间松耦合,可以使用注解、Java文件、属性文件等配置。
IOC容器管理的对象叫做,Bean对象。
类图
实例化Spring Ioc容器
在Spring ioc容器中读取Bean配置Bean实例之前,必须对它进行实例化,只有在容器实例化之后,才可以在Ico容器里面读取Bean实例并使用它们。
IOC的配置使用
XML配置的结构
<beans> <import resource="resource1.xml"/> <!--用于导入其他配置文件的Bean定义--> <bean id="bean1" class="XX.XX"></bean> <!--用于进行Bean定义--> <alias alias="bean1" name="MyBean"/> <!--用于定义Bean别名--> </beans>
Bean的配置
标识符配置:
Bean的ID和Name都可以作为标识符,如果ID、Names作为标识符,一个Bean可以有多个ID或Name,但是必须唯一。
如果同时指定ID和Name,那么ID是标识符而Name是别名。
实例化:
SpringIOC容器根据Bean定义里的配置元数据使用反射机制来创建Bean。
①使用构造器实例化Bean:
<bean id="bean1" class="XX.XX"></bean> <!--使用空构造器进行定义--> <bean id="bean1" class="XX.XX"> <constructor-arg index="0" value="Hello Spring"/> </bean> <!--使用有参构造器进行定义,index表示位置,ref表示引用-->
②使用静态工厂实例化Bean:
►说明:
通过静态工厂方法来配置Bean,注意不是配置静态工厂实例,而是配置Bean实例!
►演示:
1.创建静态工厂
2.配置Bean定义
3.测试
③ 通过实例工厂方法实例化Bean
1.实例工厂代码
2.配置实例工厂,后由实例工厂Bean创建Bean
Spring:笔记整理(2)——IOC容器的更多相关文章
- Spring:笔记整理(1)——HelloWorld
Spring:笔记整理(1)——HelloWorld 导入JAR包: 核心Jar包 Jar包解释 Spring-core 这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件 ...
- Spring系列14:IoC容器的扩展点
Spring系列14:IoC容器的扩展点 回顾 知识需要成体系地学习,本系列文章前后有关联,建议按照顺序阅读.上一篇我们详细介绍了Spring Bean的生命周期和丰富的扩展点,没有阅读的强烈建议先阅 ...
- spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程
它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationC ...
- Spring源码解析-ioc容器的设计
Spring源码解析-ioc容器的设计 1 IoC容器系列的设计:BeanFactory和ApplicatioContext 在Spring容器中,主要分为两个主要的容器系列,一个是实现BeanFac ...
- Spring核心原理之IoC容器初体验(2)
本文节选自<Spring 5核心原理> 1 IoC与DI基本概念 IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建.依赖,反转给容器来帮忙实现 ...
- [原创]java WEB学习笔记101:Spring学习---Spring Bean配置:IOC容器中bean的声明周期,Bean 后置处理器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 《精通Spring 4.X企业应用开发实战》读书笔记1-1(IoC容器和Bean)
很长一段时间关注在Java Web开发的方向上,提及到Jave Web开发就绕不开Spring全家桶系列,使用面向百度,谷歌的编程方法能够完成大部分的工作.但是这种不系统的了解总觉得自己的知识有所欠缺 ...
- 《Spring技术内幕》笔记-第二章 IoC容器的实现
简单介绍 1,在Spring中,SpringIoC提供了一个主要的JavaBean容器.通过IoC模式管理依赖关系.并通过依赖注入和AOP切面增强了为JavaBean这样子的POJO提供事务管理,生命 ...
- SPRING源码分析:IOC容器
在Spring中,最基本的IOC容器接口是BeanFactory - 这个接口为具体的IOC容器的实现作了最基本的功能规定 - 不管怎么着,作为IOC容器,这些接口你必须要满足应用程序的最基本要求: ...
随机推荐
- 试题系列四(袋中有6红球 3黄球 3绿球,从中取6个球,求所有拿到球的颜色的可能 c(12,6))
1.袋中有6红球 3黄球 3绿球,从中取6个球,求所有拿到球的颜色的可能 c(12,6) #include<stdio.h> int main(int argc, char** argv) ...
- jquery中Uncaught TypeError: $(...).ajaxUpload is not a function(…)错误解决方法
错误原因:该函数不是jquery的核心函数,所以需要外部引入ajaxfileupload.js文件,可能是没有引入,或者引入的js文件互相冲突 解决方法:每次进入一个函数之前打印该函数所有的js文件, ...
- IOS MagicRecord 详解 (转载)
2014-10-22 14:37 6137人阅读 评论(6) 收藏 举报 IOSMagicRecordCoreData 目录(?)[+] 刚开始接触IOS不久,尝试着翻译一些博客,积累技术,与大家共享 ...
- Windows Service的转换与部署
开发Windows Service,可能会碰到以下两种情况. 1. 直接开发一个Windows Service 网上有很多教程,可以参考这个: http://www.cnblogs.com/sorex ...
- makefile使用注意点
1. 小心空格 变量赋值a:= b, 不会将b前面的空格赋值给a 大部分函数调用,特别是$(call func, param) 如果参数前面有空格,则会将空格连同参数一起传入.因此要特别小心. 使 ...
- python "=",深,浅 拷贝
1.‘=’ 无论怎么改变,2者都一致 2.深浅拷贝,id都不同 3.深浅拷贝的区别在于拷贝层次, 引用是否拷贝 总结
- WPF TextBox 验证输入
//验证输入为数字private void txt_time_KeyDown(object sender, KeyEventArgs e){ if (!((e.Key >= Key.D0 &am ...
- ios . -- UICollectionView --cell 自适应
#pragma mark — 视图控制器中使用:(关键) layout.estimatedItemSize = CGSizeMake(WIDTH, ); // layout约束这边必须要用estima ...
- PHP中常用的字符串函数?
1.strlen() 2.strpos() 3.mb_strlen()
- 服务器之ECC报错检查
需要使用ipmitool工具 [root@Resource ~]# yum install ipmitool 首先查看是否有ecc报错 如下图: [root@Resource ~]# ipmitool ...