美文网首页
Spring 容器

Spring 容器

作者: TheMrBigHead | 来源:发表于2018-09-04 20:52 被阅读0次

    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

    相关文章

      网友评论

          本文标题:Spring 容器

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