• 初始化和销毁方法、spring初始化后处理器


    spring 支持了三种初始化和销毁方法
    1、加注解。@PostConstruct 和 @PreDestroy
    这种初始化方法最先执行,是初始化后处理支持的,具体实现类
    org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor#postProcessBeforeInitialization
    销毁方法:org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor#postProcessBeforeDestruction
    2、实现接口。InitializingBean,DisposableBean
    初始化方法会在所有初始化后处理执行完之后执行,这个就是判断一下当前bean是否是InitializingBean类型
    销毁方法:销毁每一个单例的时候会判断是否实现了DisposableBean ,实现了就回执行销毁方法
    3、通过@Bean指定。 @Bean(initMethod = "init1",destroyMethod = "destroy1")
    自定义的方法是最后执行的。

    销毁方法需要调用容器关闭方法,要不然是不会执行

    BeanPostProcessor bean的后置处理器
    postProcessBeforeInitialization 初始化前的后置处理器,处理Bean时机属性赋值之后,init方法之前,可以将处
    理后的bean作为原来bean的替代者。如果有多个后置处理器,则会遍历所有的后置处理器,如果有一个后置处理器返回null
    返回上一个后置处理器处理的bean
    postProcessAfterInitialization 初始化后的后置处理器,处理bean的时机是定义的初始化方法之后,如果有多个后置处
    理器,则会遍历所有的后置处理器,如果有一个后置处理器返回null返回上一个后置处理器处理的bean

  • 相关阅读:
    mysql数据库的相关练习题及答案
    数据库一
    python的协程
    jquery的常用知识点
    diehard–让你的程序更健壮
    迷宫塔生成工具
    编程解决谁是凶手的问题
    ClojureScript实现xpath定位器生成-1
    使用ClojureScript进行chrome扩展开发
    AES CBC模式下的Padding Oracle解密
  • 原文地址:https://www.cnblogs.com/mao-yan/p/13614913.html
Copyright © 2020-2023  润新知