Spring Ioc之BeanFactory

Stella981
• 阅读 882

     IoC(Inversion of Control),即所谓的控制反转,就是应用本身不负责依赖对象的创建及维护, 依赖对象的创建及维护是由外部容器(BeanFactory)负责的。

     Spring通过配置文件(或者注解、JavaConfig)描述Bean和Bean之间的依赖关系,利用反射机制实例化Bean并建立Bean之间的依赖关系。Spring的IoC容器在完成这些底层工作的同时,还提供了Bean实例缓存、生命周期管理、Bean实例代理、事件发布、资源装载等高级服务。    

    Spring IoC容器有两个核心接口:BeanFactory和 ApplicationContext。当系统创建Spring IoC容器时,默认会预初始化所有的singleton Bean。也就是说,当IoC容器初始化完成后,容器中所有singleton Bean也实例化完成,这就意味着:系统前期创建IoC容器时将有较大的系统开销,但一旦容器初始化完成,程序后面获取singleton Bean实例时将拥有较好的性能。

BeanFactory

   BeanFactory提供了IoC的基本功能,其默认实现是XmlBeanFactory。

       Spring Ioc之BeanFactory     

Spring Ioc之BeanFactory

ApplicationContext

    ApplicationContext是BeanFactory的子接口。BeanFactory提供基础的IoC功能,ApplicationContext除了支持BeanFactory的全部功能外,提供了更多企业级开发的特性:

  • ApplicationContext继承MessageSource接口,因此提供国际化支持。

  • 资源访问。

  • 事件机制。

     

    ApplicationContext有以下几种实现:

  • AnnotationConfigApplicationContext—Loads a Spring application context from one or more Java-based configuration classes

  • AnnotationConfigWebApplicationContext—Loads a Spring web application context from one or more Java-based configuration classes

  • ClassPathXmlApplicationContext—Loads a context definition from one or more XML files located in the classpath, treating context-definition files as classpath resources

  • FileSystemXmlApplicationContext—Loads a context definition from one or more XML files in the filesystem

  • XmlWebApplicationContext—Loads context definitions from one or more XML files contained in a web application

WebApplicationContext

      WebApplicationContext是ApplicaitonContext的子接口,提供了Spring IoC对Web应用的支持。

Spring Ioc之BeanFactory

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
spring中bean配置和bean注入
1bean与spring容器的关系!(http://images2015.cnblogs.com/blog/633531/201604/633531201604241051017411539223365.jpg)Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信
Easter79 Easter79
3年前
SpringIOC官方文档解读
IoC容器本章介绍了Spring的控制反转(IoC)容器。1.1。SpringIoC容器和Bean简介本章介绍了反转控制(IoC)原则的Spring框架实现。IoC也称为依赖注入(DI)。在此过程中,对象可以通过①构造函数参数(),②工厂方法的参数③或在构造或从工厂方法返回后在对象实例上设置的属性来定义其依
Stella981 Stella981
3年前
Spring 的 IOC 容器
一.BeanFactory 1\.在spring中,最基本的IOC容器接口是BeanFactory这个接口为具体的IOC容器的实现做了最基本的功能规定。  2\.在BeanFactory只对IOC容器的基本行为做了定义,根本不关心你的bean是怎样定义怎样加载的;XmlBeanFactory就是针对最
Easter79 Easter79
3年前
Spring学习笔记一
IOC容器里配置beanapplicationContext.xml必须有个无参的构造器class:bean的全类名通过beanid获得这个bean必须唯一spring提供2种IOC容器容器实现方式beanfactory用在spring本身applicationContext用在开发者配置方式相同
Stella981 Stella981
3年前
Spring5.0源码深度解析之Spring基于注解启动流程分析🔥
主要内容:一、IOC容器的初始化流创建IOC容器注册配置类BeanFactory后置处理器Bean的后置处理器创建Bean对象
Wesley13 Wesley13
3年前
JAVA日常记录
11.IOC的优点是什么IOC(InversionofControl)控制反转,将控制权(创建对象和对象之间的依赖关系的权利)交给spring容器。接口驱动设计(InterfaceDrivenDesign)的好处,可以灵活提供不同的子类实现(其实就是解耦),提高程序的灵活性、可扩展性和可维护性。IOC模式将耦合代
Easter79 Easter79
3年前
Spring高级应用之注入嵌套Bean
在Spring中,如果某个Bean所依赖的Bean不想被Spring容器直接访问,可以使用嵌套Bean。和普通的Bean一样,使用<bean元素来定义嵌套的Bean,嵌套Bean只对它的外部的Bean有效,Spring容器无法直接访问嵌套的Bean,因此定义嵌套Bean也无需指定id属性。如下配置片段是一个嵌套Bean的示例:<bean id
Easter79 Easter79
3年前
Spring的IOC逐层深入——源码解析之IoC的根本BeanFactory(五)
什么是IoC    IoC容器,最主要的就是完成对象的创建以及维护对象的依赖关系等。    所谓控制反转,包括两部分:一是控制,二是反转,就是把传统方式需要由代码来实现对象的创建、维护对象的依赖关系,反转给容器来帮忙管理和实现。所以我们必须要创建一个容器,同时需要一种描述来让容器创建对象与对象的关系。    Io