bean的生命周期

Bean的生命周期 生命周期指的是一个对象从诞生到销毁的整个生命过程,我们把这个过程就叫做一个对象的生命周期。 阅读详情

一、bean的生命周期

1、bean的初始化和销毁

  bean的生命周期大致可分为bean创建---->初始化---->bean的销毁(单例bean会在容器关闭时销毁)。bean的创建我们知道spring会在程序启动时,会帮我们创建bean并加入到容器中。但是bean创建完成以后,我们可以执行对bean进行一些初始化操作。以及在容器关闭时,我们也可以对单实例bean进行销毁操作。下面介绍几种指定bean的初始化和销毁方法。

1.1使用@Bean的两个属性initMethod(指定初始化方法)和destroy(指定销毁方法)

  在配置类中使用@bean想容器注册组件时,可以通过属性指定组件的初始化和销毁方法

@Configuration
@ComponentScan(basePackages = {
   
   "com.tellhow.review.spring_annotation.lifecycle"})
@Slf4j
public class MainConfigLifeCycle {
   
   
    @Bean(value = "naturalDisasterPojo2",initMethod = "init",destroyMethod = "destory")//指定初始化方法和销毁方法
    public NaturalDisasterPojo naturalDisasterPojo(){
   
   
        return new NaturalDisasterPojo();
    }
    public static void main(String[] args) {
   
   
        AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(MainConfigLifeCycle.class);
        String[] beanDefinitionNames = context.getBeanDefinitionNames();
        for (String beanName:beanDefinitionNames){
   
   
            log.info(beanName);
        }
        context.close();//容器关闭,单例bean就会被销毁
    }
}

@Slf4j
class NaturalDisasterPojo {
   
   
    private String name;
   //初始化方法
    public void init(){
   
   
        log.info(name+"选择修习道路,并修炼成天灾");
    }
    public NaturalDisasterPojo() {
   
   
        log.info("天灾坑位留出");
    }
   //销毁方法
    public void destory(){
   
   
        log.info(name+"陨落");
    }
    public String getName() {
   
   
        return name;
    }
    public void setName(String name) {
   
   
        this.name = name;
    }
}

1.2、使用@PostConstruct和@PreDestroy注解

  将@PostConstruct标在方法上,这个方法就是bean的初始化方法。将@PreDestroy表在方法上,那么这个方法就是bean的销毁方法。

@Component
@Slf4j
public class WhiteTiger {
   
   
    private String name;
    @PostConstruct
    public void init() {
   
   //初始化方法
        log.info(name+"努力修习,获得白虎称号");
    }
    @PreDestroy
    public void destory() {
   
   //销毁方法
        log.
java——Spring中Bean生命周期(代码测试) Bean的生命周期是Spring框架中的一个重要概念,它涵盖了Bean从创建到销毁的整个过程。在这个过程中,Spring容器通过一系列的操作和回调方法,为Bean提供了丰富的初始化、使用和销毁逻辑。开发者可以通过实现特定的接口、使用注解或指定方法名等方式,来参与和控制Bean的生命周期过程。 阅读详情

相关推荐

Spring Bean 的生命周期

前言 本文主要介绍 Spring IoC 容器如何管理 Bean 的生命周期。 在应用开发中,常常需要执行一些特定的初始化工作,这些工作都是相对比较固定的,比如建立数据库连接,打开网络连接等,同时,在结束服务时,也有一些相对固定的销毁工作需要执行。为了便于这些工作的设计,Spring IoC 容器提供了相关的功能,可以让应用定制 Bean 的初始化和销毁过程。 Bean 生命周期 的 init-method 属性或 @Bean 注解的 initMethod 属性),那么将调用该方法。 如果存在与 Bean 关联的任何 BeanPostProcessor 实现类,则将调用 #postProce

大模型蒸馏实战:让小模型获得大模型的知识

本文为初学者提供了一份大模型蒸馏实战指南,通过情感分析任务演示如何将 BERT 的知识迁移到轻量级 TextCNN。文章结合原理图解与 PyTorch 代码,详解软标签生成、温度调节和双损失设计等核心概念,并对比蒸馏前后的性能差异(准确率提升 4.6%,推理速度达 1200 句 / 秒)。内含可直接运行的代码片段、训练技巧及常见问题解答,助力开发者快速掌握模型压缩核心技术,实现工业级部署效率。适合 NLP 入门者学习实践。

1370

从Chimera到ChimeraX:科研绘图升级指南,让你的论文配图更专业

本文详细介绍了从UCSF Chimera升级到ChimeraX的科研绘图指南,帮助研究者提升论文配图质量。ChimeraX在渲染引擎、大分子处理能力和动画功能上具有显著优势,特别适合生命科学和结构生物学领域。文章涵盖材质设置、专业配色、工作流程和期刊适配等核心技巧,助力产出出版级分子可视化图像。

weixin_33670786的博客 937

ERPS协议原理

目录 1、ERPS概述: 2、ERPS名词概念解释: 3、ERPS协议报文: 4、ERPS单环基本原理: 5、单环多实例原理: 6、多环原理: 1、ERPS概述: ERPS(Ethernet Ring Protection Switching),即以太网多环保护技术,是ITU-T定义的一种二层破环协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032。它定义了RAPS(Ring Auto Protection Switching)协议报文和保护倒换机制。 ERPS目前支持v1和v2两

weixin_44880796的博客 1万+

S7-200 Smart 控制运动轴(脉冲电机/伺服)教程

S7-200 Smart 控制运动轴(脉冲电机/伺服) 结合本人刚接触触摸屏时候的踩坑经验,编写S7-200 Smart 控制运动轴(脉冲电机/伺服)的详细流程,给刚接触PLC的朋友提供一些经验指导。 本文详细介绍了S7-200 Smart 控制脉冲步进/伺服电机流程,包含接线方法及梯形图。希望对初学者有所帮助

xjbsw0的博客 5万+

开源模型应用落地-qwen模型小试-入门篇(二)

在windows环境下,使用transformer设置模型参数/System Prompt/历史对话

以微薄之力,予他人些许温暖. 3238

【YOLO26实战全攻略】10——YOLO26+SAM3实战:从检测到像素级分割的全流程指南(含PCB缺陷检测案例)

本文聚焦YOLO26与SAM3的融合应用,系统讲解“检测+分割”的三种核心模式:YOLO26原生分割(轻量高效)、YOLO26检测+SAM3精细分割(精度极致)、SAM3自动标注+YOLO26蒸馏(低成本冷启动)。从环境搭建、数据集准备、模型训练、性能优化到边缘部署,提供 step-by-step 实操教程,配套完整可运行代码与执行结果。结合虚拟PCB缺陷检测案例,展示像素级缺陷识别与几何参数测量的工业级应用流程。本文兼顾新手入门与进阶提升,注重实用价值,读者可直接参考搭建自己的分割系统。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 626

PostgreSQL面试题及详细答案120道(101-120)

本文针对PostgreSQL数据库提供全面的性能优化方案,涵盖10个关键面试题解析。主要内容包括:1)并发参数调优(max_connections、worker_processes);2)缓存设置(effective_cache_size);3)WAL日志优化;4)慢查询监控与日志配置;5)会话管理与阻塞处理;6)高写入场景优化策略;7)存储类型参数调整;8)自动清理机制配置;9)大表DDL操作避坑指南;10)性能瓶颈诊断方法论。对DBA和开发者具有实操指导价值

大剑师兰特的GIS世界 855

Cesium 场景特效之【全球海洋】GL2兼容版

Cesium 场景特效之【全球海洋】GL2兼容版

喜欢钻研前端和分享技术 1279

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

上一篇: spring给属性赋值(非从容器中取)
下一篇: 依赖注入(DI)
java加油鸭
博客等级 码龄7年 3粉丝 8原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值