news 2026/5/10 7:51:01

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Java】Bean的生命周期——print大法带你了解Bean的生命周期(初探)

、定义一个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;

}

@PostConstruct

public void myInit() {

System.out.println("3、初始化");

}

@PreDestroy

public 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/beans

http://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 {

@Test

public 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 {

@Test

public void test2() {

// 使用AnnotationConfigApplicationContext替代ClassPathXmlApplicationContext

AnnotationConfigApplicationContext context =

new AnnotationConfigApplicationContext(AppConfig.class);

Student2 student = context.getBean(Student2.class);

System.out.println("4、使用Bean");

context.close(); // 触发销毁方法

}

}

四、测试结果#

1、xml形式#

image

2、注解形式#

image

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 20:13:42

杨建允:AI搜索趋势对教育培训行业获客的影响

AI搜索正重塑教育培训行业的获客逻辑。一、AI搜索带来的核心变革1.精准获客‌&#xff1a;AI通过分析用户搜索历史、兴趣偏好等&#xff0c;实现精准客户画像。例如&#xff0c;教育机构可针对“小升初辅导”“雅思备考”等需求&#xff0c;AI搜索可定向优化相关内容&#xff0…

作者头像 李华
网站建设 2026/5/4 7:38:14

10分钟玩转Hunyuan3D-1:零代码生成专属3D虚拟宠物终极指南

10分钟玩转Hunyuan3D-1&#xff1a;零代码生成专属3D虚拟宠物终极指南 【免费下载链接】Hunyuan3D-1 腾讯开源的Hunyuan3D-1项目&#xff0c;创新提出两阶段3D生成方法&#xff0c;实现快速、高质量的文本到3D和图像到3D转换&#xff0c;融合Hunyuan-DiT模型&#xff0c;优化艺…

作者头像 李华
网站建设 2026/5/9 10:03:50

以太坊Fusaka(经济篇)—— 交易费腰斩再腰斩,Layer2成本“雪崩“?

【导读】以太坊的Fusaka升级&#xff0c;官方路线图里最醒目的关键词之一不是「TPS」&#xff0c;也不是「DeFi」&#xff0c;而是一个看起来有点抽象的东西&#xff1a;Blob。它和我们平时嘴里的Gas不一样&#xff0c;却正在悄悄改变以太坊整条经济曲线——尤其是Layer2的手续…

作者头像 李华
网站建设 2026/5/9 4:37:39

测试工程师的“第二曲线”技能探索

为什么测试工程师需要“第二曲线”&#xff1f;‌ 在查尔斯汉迪的“第二曲线”理论中&#xff0c;任何职业或组织都应在上升期主动探索新路径&#xff0c;避免因依赖原有模式而走向衰退。软件测试行业正处在这个拐点&#xff1a;随着DevOps和持续集成成为常态&#xff0c;传统…

作者头像 李华
网站建设 2026/5/8 5:37:11

48小时攻克测试岗——闪电面试极速备战手册

当机会来敲门 2025年的科技招聘市场依然充满变数&#xff0c;一个突如其来的面试机会可能改变你的职业轨迹。对于软件测试工程师而言&#xff0c;"闪电面试"既是挑战也是机遇——它考验着你的知识储备、应变能力和专业素养。本文专为测试从业者设计&#xff0c;帮你…

作者头像 李华
网站建设 2026/5/5 3:19:46

量化投资绩效分析自动化:告别手动Excel计算,5分钟生成专业报告

量化投资绩效分析自动化&#xff1a;告别手动Excel计算&#xff0c;5分钟生成专业报告 【免费下载链接】backtrader 项目地址: https://gitcode.com/gh_mirrors/bac/backtrader 还在为繁琐的量化策略绩效分析而头疼吗&#xff1f;手动在Excel中计算夏普比率、最大回撤等…

作者头像 李华