Spring 容器

2018-09-04  本文已影响0人  TheMrBigHead

Spring 容器

  1. 创建Bean
  2. 管理Bean的生命周期
  3. 组装Bean
  4. 配置Bean

Spring容器是Spring框架的核心

Spring容器采用依赖注入的方式来管理Bean

Spring提供了两大类容器实现。

  1. 实现org.springframework.beans.factory.BeanFactory接口
  2. 实现org.springframework.context.ApplicationContext接口

使用ApplicationContext

常见的几种ApplicationContext

  1. AnnotationConfigApplicationContext
    通过一个或多个基于java的配置类来加载Spring Application Context

  2. ClassPathXmlApplicationContext
    通过一个或多个位于classpath里的xml配置文件来加载Spring Application Context

  3. FileSystemXmlApplicationContext
    通过一个或多个位于文件系统中xml配置文件来加载Spring Application Context

  4. XmlWebApplicationContext
    通过一个或多个位于web应用中的xml配置文件来加载Spring Application Context

使用方法:

ApplicationContext context = new FileSystemXmlApplicationContext("c:/knight.xml");

ApplicationContext context = new
ClassPathXmlApplicationContext("knight.xml");

ApplicationContext context = new AnnotationConfigApplicationContext(
com.springinaction.knights.config.KnightConfig.class);

通过是用context.getBean()来获取具体的Bean

Bean生命周期

image.png
  1. Spring容器来初始化Bean

  2. Spring将value和bean依赖注入到Bean的属性中去

  3. 如果Bean实现了BeanNameAware,Spring会把Bean的id传到setBeanName()方法里去

  4. 如果Bean实现了BeanFactoryAware接口,Spring会调用setBeanFactory()方法,并把自己传到Bean Factory里

  5. 如果Bean实现了ApplicationContextAware接口,Spring会调用setApplicationContext()方法,传入对封闭应用程序的引用

  6. 如果Bean实现了BeanPostProcessor接口,Spring会调用他的postProcessBeforeInitialization()方法

  7. 如果Bean实现了InitializingBean接口,Spring会调用他的afterPropertiesSet()接口。同样的,如果这个Bean在声明的时候有一个init-method属性,那么这个方法就会被调用(主要是在xml配置文件里的)

  8. 如果Bean实现了BeanPostProcessor接口,Spring会调用他的AfterInitialization()方法

  9. 在这个阶段,Bean在容器中,直到容器被销毁

  10. 如果Bean实现了DisposableBean接口,Spring会调用他的destroy()。同样的,在xml中生命的时候可以指定destroy-method

上一篇下一篇

猜你喜欢

热点阅读