zoukankan      html  css  js  c++  java
  • Spring容器管理Bean的生命周期

    我们可以自定义初始化和销毁方法,容器在bean进行到当前生命周期的时候来调用我们自定义的初始化和销毁方法。

    生命周期:bean创建---初始化---销毁

    构造(对象创建)

    单实例:在容器启动的时候创建对象

    多实例:在每次获取bean的时候创建对象

    初始化

    对象创建完成,并赋值好,调用初始化方法。

    销毁

    单实例:容器关闭的时候

    多实例:容器不会管理这个bean,容器不会调用销毁方法。

     

    1)指定初始化和销毁的方法:

    通过@Bean指定init-methord和destory-methord;

    2)通过让Bean实现InitializingBean(定义初始化逻辑),DisposableBean(定义销毁逻辑)

    3)可以使用JSR250;

    @PostConstruct : 在bean创建完成并且属性赋值完成,来执行初始化方法

    @PreDestory : 在容器销毁bean之前通知我们进行清理工作

    4)BeanPostProcessor 是bean的后置处理器,BeanPostProcessor 是一个接口,其中有俩方法postProcessBeforeInitialization和postProcessAfterInitialization,这俩方法是在Spring容器中的bean初始化前后执行,所以Spring容器中的每个bean对象初始化前后,都会执行BeanPostProcessor接口的实现类中的这俩方法。

     

    在bean初始化前后进行一些处理工作:

    postProcessBeforeInitialization: 在bean初始化前工作,这个方法会在bean实例化和属性设置之后,自定义初始化方法之前被调用。

    postProcessAfterInitialization : 在bean初始化后工作,这个方法自定义初始化方法之后被调用。

    BeanPostProcessor 作用:

    后置处理器BeanPostProcessor 可用于bean对象初始化前后进行逻辑增强。Spring提供了BeanPostProcessor 接口的很多实现类,如AutowiredAnnotationBeanProcessor用于@Autowired 注解的实现,AnnotationAwareAspectJProxyCreator用于Spring AOP的动态代理等等。

  • 相关阅读:
    [bzoj1576] [Usaco2009 Jan]安全路经Travel
    [坑][poj2396]有上下界的最大流
    bzoj1458 士兵占领
    [Ahoi2013]差异
    bzoj2424 [HAOI2010]订货
    bzoj1741 [Usaco2005 nov]Asteroids 穿越小行星群
    bzoj2251 [2010Beijing Wc]外星联络
    bzoj1977 [BeiJing2010组队]次小生成树 Tree
    bzoj2729 [HNOI2012]排队
    bzoj1925 [Sdoi2010]地精部落
  • 原文地址:https://www.cnblogs.com/cathyqq/p/14321806.html
Copyright © 2011-2022 走看看