首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Spring注解驱动开发】@PostConstruct与@PreDestroy源码的执行过程

    写在前面 在前面的《【String注解驱动开发】你真的了解@PostConstruct注解和@PreDestroy注解吗?》...一文中,我们简单的介绍了@PostConstruct注解与@PreDestroy注解的用法,有不少小伙伴纷纷留言说:在Spring中,@PostConstruct注解与@PreDestroy注解标注的方法是在哪里调用的呀...相信大家应该都挺好奇的吧,那今天我们就来一起分析下@PostConstruct注解与@PreDestroy注解的执行过程吧!...项目工程源码已经提交到GitHub:https://github.com/sunshinelyz/spring-annotation 注解说明 @PostConstruct,@PreDestroy是Java...调用过程 具体过程是,IOC容器先解析各个组件的定义信息,解析到@PostConstruct,@PreDestroy的时候,定义为生命周期相关的方法,组装组件的定义信息等待初始化;在创建组件时,创建组件并且属性赋值完成之后

    78040

    Spring Bean生命周期大师课:@PostConstruct与@PreDestroy的正确打开方式

    @PreDestroy: 对于原型作用域的Bean,Spring容器一旦创建并将其交给请求方后,就不再管理其完整的生命周期了。因此,@PreDestroy 方法不会被容器自动调用!...✅ 销毁阶段 (@PreDestroy) 子类的 @PreDestroy 方法 父类的 @PreDestroy 方法 简而言之:@PreDestroy 是从子类到父类依次执行(与初始化顺序相反,符合资源释放的逻辑...ChildBean: @PreDestroy - childDestroy() called. ParentBean: @PreDestroy - parentDestroy() called....(四)原型作用域中误用 @PreDestroy 错误: 期望Spring容器为原型Bean自动调用 @PreDestroy 方法。...异步销毁 (@Async on @PreDestroy method): 如果 @PreDestroy方法中的清理逻辑非常耗时,可能会拖慢应用的关闭速度。

    85210

    Bean生命周期(2)---Spring源码从入门到精通(八)

    destory-method: Bean生命周期(1)---Spring源码从入门到精通(七) 这篇主要介绍,InitializingBean, DisposableBean接口 和 @PostConstruct,@PreDestroy...annotationConfigApplicationContext.close(); } 这时候,我们会打印出来,对象创建construct,初始化init和销毁: 2、@PostConstruct,@PreDestroy...定义cat类,给init和destory方法加这两个注解,顾名思义,PostConstruct注解意思在对象创建之后调用的方法,PreDestroy在销毁之前调用的方法,同样加上component注解...(){ System.out.println("cat ...PostConstruct."); } /** * 销毁之前调用 */ @PreDestroy...public void destory(){ System.out.println("cat ...PreDestroy"); } } junitTest不变,打印之后如下

    37220

    Spring Bean 生命周期之“我要到哪里去”?

    Bean 有三种方式: @PostConstruct InitializingBean.afterPropertiesSet() init-method 销毁 Spring Bean 同样有三种方式: @PreDestroy...DisposableBean.destroy() destroy-method 正所谓,天对地,雨对风;@PostConstruct 对 @PreDestroy;InitializingBean.afterPropertiesSet...@PreDestroy 这种方式是 Spring 非常提倡的一种方式,我们通常将其标记在方法上即可,通常习惯将这个方法起名为 destory() @PreDestroy public void...首先 @PreDestroy 会被调用 其次 DisposableBean.destroy() 会被调用 最后调用通过 XML 配置的 destroy-method 方法或通过设置 @Bean 注解...设置 destroyMethod 属性的方法 用图示来说明一下调用顺序 这个调用顺序也不难记忆 PreDestroy (P),destroy (D),destroy-method (D) ---> PDD

    42620

    Spring Bean 生命周期之“我要到哪里去”?

    Bean 有三种方式: @PostConstruct InitializingBean.afterPropertiesSet() init-method 销毁 Spring Bean 同样有三种方式: @PreDestroy...DisposableBean.destroy() destroy-method 正所谓,天对地,雨对风;@PostConstruct 对 @PreDestroy;InitializingBean.afterPropertiesSet...@PreDestroy 这种方式是 Spring 非常提倡的一种方式,我们通常将其标记在方法上即可,通常习惯将这个方法起名为 destory() @PreDestroy public void...首先 @PreDestroy 会被调用 其次 DisposableBean.destroy() 会被调用 最后调用通过 XML 配置的 destroy-method 方法或通过设置 @Bean 注解...设置 destroyMethod 属性的方法 用图示来说明一下调用顺序 这个调用顺序也不难记忆 PreDestroy (P),destroy (D),destroy-method (D) ---> PDD

    70621
    领券