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容器的更多相关文章

  1. Spring:笔记整理(1)——HelloWorld

    Spring:笔记整理(1)——HelloWorld 导入JAR包: 核心Jar包 Jar包解释 Spring-core 这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件 ...

  2. Spring系列14:IoC容器的扩展点

    Spring系列14:IoC容器的扩展点 回顾 知识需要成体系地学习,本系列文章前后有关联,建议按照顺序阅读.上一篇我们详细介绍了Spring Bean的生命周期和丰富的扩展点,没有阅读的强烈建议先阅 ...

  3. spring之:XmlWebApplicationContext作为Spring Web应用的IoC容器,实例化和加载Bean的过程

    它既是 DispatcherServlet 的 (WebApplicationContext)默认策略,又是 ContextLoaderListener 创建 root WebApplicationC ...

  4. Spring源码解析-ioc容器的设计

    Spring源码解析-ioc容器的设计 1 IoC容器系列的设计:BeanFactory和ApplicatioContext 在Spring容器中,主要分为两个主要的容器系列,一个是实现BeanFac ...

  5. Spring核心原理之IoC容器初体验(2)

    本文节选自<Spring 5核心原理> 1 IoC与DI基本概念 IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建.依赖,反转给容器来帮忙实现 ...

  6. [原创]java WEB学习笔记101:Spring学习---Spring Bean配置:IOC容器中bean的声明周期,Bean 后置处理器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  7. 《精通Spring 4.X企业应用开发实战》读书笔记1-1(IoC容器和Bean)

    很长一段时间关注在Java Web开发的方向上,提及到Jave Web开发就绕不开Spring全家桶系列,使用面向百度,谷歌的编程方法能够完成大部分的工作.但是这种不系统的了解总觉得自己的知识有所欠缺 ...

  8. 《Spring技术内幕》笔记-第二章 IoC容器的实现

    简单介绍 1,在Spring中,SpringIoC提供了一个主要的JavaBean容器.通过IoC模式管理依赖关系.并通过依赖注入和AOP切面增强了为JavaBean这样子的POJO提供事务管理,生命 ...

  9. SPRING源码分析:IOC容器

    在Spring中,最基本的IOC容器接口是BeanFactory - 这个接口为具体的IOC容器的实现作了最基本的功能规定 - 不管怎么着,作为IOC容器,这些接口你必须要满足应用程序的最基本要求: ...

随机推荐

  1. 181. Flip Bits【easy】

    181. Flip Bits[easy] Determine the number of bits required to flip if you want to convert integer n  ...

  2. mysql之select into outfile

    参见:http://dev.mysql.com/doc/refman/5.1/en/select-into.html 例子: SELECT a,b,a+b INTO OUTFILE '/tmp/res ...

  3. NSCondition(转)

    NSConditionLock 继承类NSObject 遵从的协议NSLocking NSObject NSConditionLock 类定义特定的.用户定义的条件锁 协议NSLocking 方法 l ...

  4. Mysql 变量讲解

    set语句的学习: 使用select定义用户变量的实践将如下语句改成select的形式: set @VAR=(select sum(amount) from penalties);我的修改: sele ...

  5. Spring MVC可参数化的视图控制器

    以下示例显示如何使用Spring Web MVC框架来实现多动作控制器的可参数化视图控制器.可参数化视图允许将请求映射到网页. 所下所示配置 - import javax.servlet.http.H ...

  6. Eclipse 首选项(Preferences)

    Eclipse 首选项(Preferences) 设置首选项 该对话框可通过框架管理但是其他插件可以设置其他页面来管理首选项的配置. 我们可以通过 Window 菜单选择 Preferences 菜单 ...

  7. css3的线性渐变效果

    1.代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF ...

  8. 【matlab】绘制双三次插值函数曲线

    想要的效果: 编程时要用到分段函数曲线的绘制方法:..+.*(分段条件). 需要注意的是:函数表达式中的乘除和乘方都要加“.”.因为一般的函数都是数在乘变量运算. x=-:; a=-0.5; w=ab ...

  9. 4、easyUI-七种布局(layout)

    1.为网页创建边框布局 边框布局(border layout)提供五个区域:east.west.north.south.center.以下是一些通常用法: north 区域可以用来显示网站的标语. s ...

  10. 关于java后台如何接收xml格式的数据

    业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户. 请求格式: <request> <head> <sign></sig ...