zoukankan      html  css  js  c++  java
  • 初始化和销毁方法、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

  • 相关阅读:
    DB2数据库基础
    mysqldump 备份数据库脚本
    Windows Server 2012 R2 卸载IE浏览器
    mysqlpump 和 mysql_config_editor测试
    Linux 修改时区
    PowerShe 消息提示框测试
    Python使用libsvm的“ImportError: No module named svmutil”问题
    常见的机器学习&数据挖掘知识点
    [猜你喜欢]冠军“yes,boy!”分享,含竞赛源代
    用户人品预测大赛获奖团队分享
  • 原文地址:https://www.cnblogs.com/mao-yan/p/13614913.html
Copyright © 2011-2022 走看看