ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Spring 控制反转容器(Inversion of Control – IOC)

2019-06-01 12:01:12  阅读:267  来源: 互联网

标签:Control Inversion Java Spring 配置 Bean bean IoC



系列教程


IoC(Inversion of Control )代表控制反转,Spring框架本质上是一个IoC容器。

什么是控制反转?

Java程序中,Java类是基本的代码组织单位。当某个类要使用另一个类时,自然的做法是创建另一个类的对象,然后调用该对象的方法。这样做在程序规模较小时没什么问题,但当程序规模很大时这些类之间过于紧密的耦合会导致后续开发维护困难。例如要替换其中某个类,就不得不修改所有涉及这个类的代码。

控制反转(Inversion of Control / IoC)与依赖注入(Dependency Injection / DI)就是为解决这个问题。上面提到类里面创建另外一个类实例会造成耦合太紧,Spring框架就把创建类实例的行为从类中拿出来放到Spring框架里去做,类与类之间创建关系就没有了。

本来由类控制其所依赖的另一个类的实例创建,现在把创建动作放到Spring框架里了,由框架控制所有类的实例创建,这就是“控制反转”。

框架创建了类所依赖的对象,然后把这些对象传给(注入)类,这就是“依赖注入”。

所以可以看到,Spring框架中控制反转(Inversion of Control / IoC)与依赖注入(Dependency Injection / DI)实际上讲的是同一个事情,只是角度不同。

IoC容器执行的主要任务:

  • 创建bean实例
  • 根据配置文件装配bean
  • 为bean设置初始化参数
  • 管理bean的生命周期

什么是Bean?

Bean是Java中基本的代码重用单位,是遵守一定约定的Java类。

在Spring中,Bean就是普通的Java类,由Spring IoC容器实例化、组装、管理。

IoC容器根据XML文件、Java注释或Java config文件中的配置信息创建、装配、管理bean(普通Java类),spring应用只需声明一下所需的类(往往是父类,以便达到松耦合的目的)就可直接使用这些bean的功能。如图所示:

IoC容器有两种类型:

  • BeanFactory
  • ApplicationContext

ApplicationContext接口基于BeanFactory接口,比BeanFactory接口更强大,推荐使用ApplicationContext。后面会有详细介绍。

Bean的配置方式

Bean的配置信息里包含了:

  1. 如何创建bean
  2. bean的生命周期回调方法配置
  3. bean的依赖关系

Spring容器利用这些信息装配Bean。

bean配置方式有3种:

  • XML配置 - 使用XML文件来配置bean
  • 注解配置 - 使用@Service@Component注解配置bean
  • Java配置 - 从Spring 3.0开始,可以使用java程序配置bean,java配置用到的主要注解是:@Configuration@ComponentScan@Bean

后续将会详细介绍。

标签:Control,Inversion,Java,Spring,配置,Bean,bean,IoC
来源: https://www.cnblogs.com/jinbuqi/p/10959100.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有