spring 容器

spring 容器

在基于spring的应用中,应用的对象生存于spring 容器中,容器负责创建和装配对象, 配置他们并且管理他们的整个声明周期。容器是spring 框架的核心,spring容器使用DI (依赖注入)管理构成应用的组建,他会创建相互协作的组建之间的关联

spring 容器可以分为两种不同的类型 bean工厂,以及应用上下文。 其中 bean工厂是最简单的容器,提供基本的DI 支持,而应用上下文则是基于beanFactory 构建,并提供应用框架级别的服务

spring 应用上下文

spring 自带多种类型的应用上下文

  1. annotationConfigApplicationContext :从一个或多个基于Java的配置类中加载spring应用上下文
  2. annotationConfigWebApplicationContext :从一个或多个基于Java 的配置类中价值spring
    web 应用上下文
  3. ClassPathXmlApplicationContext 从类路径下的一个或多个xml
    配置文件中加载上下文定义,把应用上下文的定义文件作为类资源
  4. FileSystemXmlApplicationContext 从文件系统的xml 配置文件中加载上下文定义
  5. XmlWebApplicationContext 从web 应用下的xml 配置文件中加载上下文定义

当应用上下文准备就绪后,我们可以调用上下文的getBaen()方法从容器中获取bean

Spring Bean 的生命周期

传统Java应用中,bean 的声明周期很简单,使用new 关键字进行bean 的实例化,然后就可以使用bean了。当不使用了,则由Java的垃圾回收机制回收 ,而spring的bean 有属于自己的过程

  1. spring 对bean 进行实例化
  2. spring 将值和bean 的引用注入到bean 对于的属性中
  3. 如果bean 实现了 BeanNameAware 接口,则将bean 的id 传递给setBeanName 方法
  4. 如果实现了BeanFactoryAware 接口 ,调用setBeanFactory 方法,将beanFactory 容器实力传入
  5. 如果实现了ApplicationContextAware 接口, 将调用setApplicationContext 方法,将 bean
    所在的应用上下文引用传入进来
  6. 如果bean 实现了 beanPostProcessor 接口
  7. 如果实现了 InitializingBean
  8. beanPostProcessor
  9. 经过上面的准备,bean 已经准备就绪了,可以被应用程序使用,他们会一直驻留在应用上下文中,知道应用上下文被销毁
  10. 如果bean 实现了DisposableBean 接口,spring将调用它的destroy 方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值