下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

软件设计:Spring——管理Bean的生命周期

作者:就像空中月     来源: https://www.cnblogs.com/Unicron/p/12341620.html点击数:1089发布时间: 2020-04-11 21:24:59

标签: 软件工程软件开发Spring

  软件生命周期模型的发展实际上是体现了软件工程理论的发展。在最早的时候,软件的生命周期处于无序、混乱的情况。一些人为了能够控制软件的开发过程,就把软件开发严格的区分为多个不同的阶段,并在阶段间加上严格的审查。这就是瀑布模型产生的起因。

  我们可以自定义bean的初始化和销毁方法,这里所指的的初始化和bean的构造不同,初始化是在bean构造完成后,对bean内部的属性或一些逻辑进行初始化。

  首先要弄清一些概念:

  1构造(对象创建)

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

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

  2初始化:在对象创建后调用

  3销毁:

  单实例:在容器关闭时执行销毁方法

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

  下面提供几种方法供参考

  一、指定初始化和销毁方法

  在配置类中,我们可以通过@Bean指定initMethod和destroyMethod,分别指向类中的初始化和销毁方法。

  二、实现InitializingBean和DisposableBean

  实现接口中的InitializingBean(定义初始化逻辑)和destroy(定义销毁逻辑)方法即可。

  三、通过@PostConstruct和@PreDestroy注解

  在初始化和销毁方法上分别添加@PostConstruct和@PreDestroy注解,这样就能给Bean实现初始化和销毁。

  四、后置处理器及其原理

  后置处理器含义如下两个方法postProcessBeforeInitialization和postProcessAfterInitialization,分别会在初始化前和初始化后执行。

软件设计:Spring——管理Bean的生命周期_软件工程_软件开发_Spring_课课家

  实现逻辑

  BeanFactory在创建bean时,会先调用initializeBean方法进行初始化,并在初始化前获取到所有后置处理器,并执行后置处理器的postProcessBeforeInitialization方法。

  执行完所有后置处理器的postProcessBeforeInitialization方法后,接着BeanFactory将执行完初始化。

  初始化完成后,继续获取所有的后置处理器,循环执行所有的postProcessAfterInitialization方法。

  方法三的实现逻辑也是通过后置处理器来完成的。

  在执行postProcessBeforeInitialization时,会扫描标注有@PostConstruct注解的方法的类,最终定位到对应方法并执行。

  软件生存周期(softwarelifecycle)又称为软件生命期,生存期。是指从形成开发软件概念起,所开发的软件使用以后,直到失去使用价值消亡为止的整个过程。

赞(14)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程