美文网首页
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