当前位置: 首页 > news >正文

【Java】Bean的生命周期——print大法带你了解Bean的生命周期(初探)

今天面试被问到Bean的生命周期,我就巴拉巴拉说了5个步骤,最后反问阶段面试官说不够详细。今天就来实战梳理一下!

一、定义一个Student类

为了方便看到生命周期过程,我直接使用print大法;
另外,将类交给Spring容器管理可以通过xml文件形式和注解形式,接下来我都实现一下

1、xml形式

package com.goahead.bean;public class Student1 {private String name;public Student1() {System.out.println("1、实例化");}public Student1(String name) {this.name = name;}public void setName(String name) {System.out.println("2、依赖注入");this.name = name;}public void myInit() {System.out.println("3、初始化");}public void myDestroy() {System.out.println("5、销毁");}
}

2、注解形式

package com.goahead.bean;import org.springframework.stereotype.Component;
import org.springframework.beans.factory.annotation.Value;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;@Component
public class Student2 {private String name;public Student2() {System.out.println("1、实例化");}public Student2(String name) {this.name = name;}@Value("goahead")public void setName(String name) {System.out.println("2、依赖注入");this.name = name;}@PostConstructpublic void myInit() {System.out.println("3、初始化");}@PreDestroypublic void myDestroy() {System.out.println("5、销毁");}
}

二、将Student类交给Spring容器

1、xml文件形式

需要在resource文件夹下定义一个xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="student" class="com.goahead.bean.Student" init-method="myInit" destroy-method="myDestroy"><property name="name" value="goahead"/></bean>
</beans>

2、注解形式(推荐)

注解形式我们只需在Student2类上加相应的注解,然后加一个配置类

在config目录下创建一个 AppConfig

package com.goahead.config;import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;@Configuration
@ComponentScan("com.goahead.bean")  // 扫描包路径
public class AppConfig {
}

三、测试

由于我们第二步实现了两种方式,所以测试也对应两种方式

1、对应xml形式

import com.goahead.bean.Student1;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class AppTest1 {@Testpublic void test1() {ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");Student1 student1 = context.getBean(Student1.class);System.out.println("4、使用Bean");((ClassPathXmlApplicationContext)context).close();}
}

2、注解形式

import com.goahead.bean.Student2;
import com.goahead.config.AppConfig;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class AppTest2 {@Testpublic void test2() {// 使用AnnotationConfigApplicationContext替代ClassPathXmlApplicationContextAnnotationConfigApplicationContext context =new AnnotationConfigApplicationContext(AppConfig.class);Student2 student = context.getBean(Student2.class);System.out.println("4、使用Bean");context.close();  // 触发销毁方法}
}

四、测试结果

1、xml形式

image

2、注解形式

image

http://www.jsqmd.com/news/27304/

相关文章:

  • 基于containerd部署的k8s集群
  • AE脚本-MoBar v3.5.1 Win 可提高效率的AE快捷命令脚本工具箱
  • “数据筑基” 赋能 “人工智能+”:解构“十五五”新质生产力的核心路径
  • 详细介绍:Win11系统JAVA8与IDEA社区版下载安装与配置
  • 2025 年最新推荐!搬家公司推荐排行榜 ,覆盖玄武秦淮等区域专业搬家公司精选榜单南京搬家公司推荐
  • Golang 镜像拉取与 Docker 部署全教程
  • 2025年推拉棚供应商年度排名,推拉棚源头厂家/推拉棚制造商推荐
  • 解析2025强网拟态EZMiniAPP
  • 2025 年 10 月 UV 测量仪器/UV LED 配套设备/UV 光固化胶厂家推荐排行榜:专业选型指南与高效应用方案
  • 2025年新疆电线电缆厂家权威推荐榜单:特种电缆/矿用电缆/电力电缆源头厂家精选
  • 为什么顶级企业愿意为设计买单?
  • sg.后台线程-1亿浮点运算用时-方法2
  • 2025 年混合机厂家最新推荐排行榜:高效盘条式无重力犁刀式锥形卧式螺带连续式等机型优选企业测评结果及核心优势解析
  • note 2
  • 基于机载相控阵天线的卫星通信链路预算示例:(一) - 实践
  • 2025年上海继承律师权威推荐榜单:离婚房产律所/离婚律所/继承律所精选服务商
  • 基于MATLAB的MFCC特征与高斯混合模型(GMM)语音识别系统
  • 安装Helm
  • vdi镜像转换vmdk虚拟磁盘文件
  • 2025 CSP/NOIp 复习
  • 卐 comes from where?
  • pypdf内存耗尽漏洞分析:恶意LZWDecode流可导致资源耗尽
  • 火山引擎多模态数据湖解决方案,以新一代数据基座迎接AI Agent时代
  • 094_尚硅谷_for循环课堂练习
  • 深入解析:Spring Cloud Netflix Ribbon:微服务的客户端负载均衡利器
  • 使用kubeasz离线安装K8S
  • sg_后台线程运行函数:.perform_long_operation(func, callback)
  • 2025年佛山短视频运营制作公司推荐:五家服务商权威测评
  • 小程序设计的底层逻辑:兰亭妙微谈 “轻产品” 如何赢得 “重体验”
  • 2025年上海离婚房产律所权威推荐榜单:离婚律所/房产律所/婚姻律所源头服务商精选