通过故事详细了解Spring创建Bean的过程

故事背景:一座神秘的工厂

在一个遥远的国度,有一座神秘的工厂——Spring工厂。这座工厂能够制造出各种神奇的工具和机器,帮助居民解决各种问题。工厂的管理者是一位叫作Spring的巫师,他掌握着制造这些工具的独门秘籍。

1. 需求分析:居民的需求

一天,镇上的居民们来到Spring工厂,向Spring巫师提出了需求:“我们需要一些特殊的工具,来帮助我们进行日常工作。”

Spring巫师听取了大家的需求,并开始思考如何制造这些工具。每个工具都是独一无二的,必须按照居民的要求精心打造。巫师决定使用他的魔法来帮助他实现这个目标,而这些魔法的核心就是Bean

2. 创建配方:配置文件和注解

为了制造工具,Spring巫师需要一个详细的配方,这个配方就是我们所说的配置文件注解

  • 配置文件:在古老的时代,Spring巫师使用卷轴(XML文件)记录下所有工具的配方。在卷轴中,他详细列出了工具的名称、材质、功能等信息。
  • 注解:后来,巫师发现了一种更为简便的方式。他直接在工具的设计图(Java类)上标记了关键的信息。通过这些注解,巫师能够迅速了解如何制造这些工具。
举例
@Component
public class Hammer {
    // Hammer's properties and methods
}

在这个例子中,Spring巫师在锤子的设计图上标记了@Component注解,告诉工厂这个工具需要被制造出来。

3. 工厂的运作:Bean的创建过程

一切准备就绪后,Spring工厂开始运作。

3.1. 扫描工厂:寻找设计图

工厂的第一步是扫描所有的设计图(Java类)。Spring巫师让他的助手——ClassPathScanning精灵去寻找那些标记了特殊符号(如@Component@Service等)的设计图。

3.2. 制作工具:实例化Bean

一旦找到合适的设计图,Spring工厂就会启动生产线,开始制造工具。这个过程被称为实例化Bean

  • 实例化(Instantiation):工厂使用魔法(Java反射机制)来制造工具的实体。这就像在工厂中将原材料组装成最终产品。
Hammer hammer = new Hammer();
3.3. 赋予灵魂:依赖注入

工具制造完成后,Spring巫师还会赋予它们“灵魂”,让它们能够真正工作。这一步骤被称为依赖注入(Dependency Injection)

  • 属性注入:Spring工厂会为工具注入必要的组件,比如为锤子注入它的把手和锤头。
@Autowired
private Handle handle;
  • 构造函数注入:巫师也可能在工具创建时直接注入必要的组件。
public Hammer(Handle handle) {
    this.handle = handle;
}

4. 检查工具:Bean的生命周期

在工具正式交付给居民之前,Spring巫师会对每个工具进行一系列检查,确保它们能够正常工作。

4.1. 初始化

工具在交付之前,Spring巫师会调用一个特殊的魔法咒语——@PostConstruct,进行最后的初始化。

@PostConstruct
public void init() {
    // Perform any initialization tasks here
}
4.2. 使用与销毁

当工具完成了它的使命后,巫师还会调用另一个咒语——@PreDestroy,来安全地销毁它们,确保资源得到正确释放。

@PreDestroy
public void cleanup() {
    // Cleanup resources before destruction
}

5. 工具上架:将Bean交付给居民

经过一系列的流程,工具终于可以上架了。这些Bean被存放在一个神秘的仓库中——Spring容器。每当居民需要某个工具时,他们只需向Spring工厂提交请求,工厂就会从容器中取出这个工具交给他们。

总结

Spring工厂的整个过程从需求分析开始,通过配置文件和注解制定生产配方,扫描设计图、实例化工具、注入依赖,最终将制造好的工具交付给居民使用。每个Bean在整个生命周期中都经历了严格的控制和管理,确保它们能够以最佳状态为居民服务。

通过这个故事,你可以清晰地了解Spring创建Bean的过程,它包括了配置扫描实例化依赖注入生命周期管理等多个步骤,每一步都至关重要。

看完之后再看看自己收藏的博客就容易理解了
https://blog.csdn.net/weixin_38405253/article/details/110152309

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值