美文网首页
spring 学习02

spring 学习02

作者: 咸鱼佬 | 来源:发表于2018-09-09 14:16 被阅读9次

Spring 容器

在Spring 应用中,你的应用对象生存在Spring容器中,Spring 容器负责创建对象,装配他们,配置并且管理他们的生命周期。
Spring 容器可以归类为两种不同的类型:

  1. bean工厂BeanFactory,最简单的容器,提供基本的DI。
  2. 应用上下文ApplicationContext,基于BeanFactory构建,并提供应用框架级别服务。

使用应用上下文

  • AnnotationConfigApplicationContext 从一个或多个基于Java的配置类中加载Spring应用上下文 使用
  • AnnotationConfigWebApplicationContext 从一个或多个基于Java的配置类中加载Spring应用上下文
  • ClassPathXmlApplicationContext 从类路径下的一个或多个XML配置文件中加载上下文定义
  • FileSystemXmlapplicationcontext 从文件系统下的一个或多个XML配置文件中加载上下文定义
  • XmlWebApplicationContext 从Web应用下的一个或多个XML配置文件中加载上下文定义

bean的生命周期

Spring的生命周期相对于传统的Java对象复杂多,我们可以通过Spring 提供的扩展点来自定义bean的创建过程


image
  1. Spring对Bean进行实例化
  2. Spring 将值和引用注入到Bean对应的属性中
  3. 如果bean实现了BeanNameAware接口,spring将调用setBeanName方法将BeanId作为参数传入
  4. 如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法将beanfactory方法传入
  5. 如果bean实现了ApplicationContextAware接口,spring将调用setApplicationContext方法将applicationContext传入
  6. 如果bean实现了BeanPostProcessor接口,spring将会调用她的postProcessBeforeInitialization 方法
  7. 如果bean实现了InitializingBean接口,那么就会去条用其afterPropertiesSet方法,同理,如果bean使用了init-method声明了初识方法,该方法被调用
  8. 如果bean实现了BeanPostProcessor接口,spring将会调用她的postProcessAfterInitialization 方法
  9. 此时,bean已经准备就绪,可以被应用程序使用了,它们将一直驻留在应用上下文中,直到该应用上下文被销毁
  10. 如果bean实现了DisposableBean接口,Spring将调用它的destroy()接口方法。同样,如果bean使用destroy-method声明了销毁方法,该方法也会被调用

相关文章

网友评论

      本文标题:spring 学习02

      本文链接:https://www.haomeiwen.com/subject/ahwrgftx.html