prajnalab

2、Node全局对象

在上一篇文章中,我们已经完成了 Node.js 的入门与环境安装。本节我们将聚焦于全局对象的学习,这是理解 Node.js 语法与运行机制的重要基础。为了方便大家理解,我们将通过与浏览器环境中的 window对象进行类比,来系统梳理 Node.js 全局对象的相关知识。 本文内容: Node程序传递

hexon hexon 发布于 2026-01-15

1、初识Node

在掌握了HTML、CSS、JavaScript和Vue框架等前端基础技术后,要想真正自由、灵活地开发和构建项目,前端工程化是一个绕不开的课题。而前端工程化的核心脚本语言正是Node.js。回顾过去,我也曾零散接触过一些,但往往浅尝辄止。与其每次都半途而废,不如集中投入一段时间,对Node.js进行一

hexon hexon 发布于 2026-01-15

10、Bean销毁过程生命周期源码解析

上一篇文章我们主要分析了 Bean 创建过程的源码,特别是在 doCreateBean 方法的末尾提到了与 Bean 销毁相关的逻辑代码。这说明在 Bean 的创建阶段就已经与它的销毁机制建立了联系——Spring 会在创建时判断该 Bean 是否需要销毁,并收集对应的销毁方法。当然,此时并不会直接

hexon hexon 发布于 2026-01-12

Spring配置类深度解析:从@Configuration到代理模式的完整指南

为什么需要理解Spring配置类? 在Spring框架的日常开发中,我们经常会使用@Configuration、@Component等注解来定义配置类。但你是否曾想过: 为什么有的配置类使用@Configuration,有的只用@Component?</

hexon hexon 发布于 2026-01-06

9、Bean创建过程生命周期源码解析

前面我们主要学习了Spring启动过程中的的扫描逻辑和一些前置的铺垫知识,扫描主要是获取到BeanDefinition。获取后其实就是要基于BeanDefinition去创建Bean对象了。上篇文章中我们分析FactoryBean时,其实已经开始分析getBean方法了。那么从这一篇文章开始将进入g

hexon hexon 发布于 2025-12-27

8、FactoryBean创建过程底层源码解析

注意:前面学习了ComponentsIndex机制,在学习本文前请把META-INF/spring.components这个文件里面的内容删除或者注释,否则会有影响。 这个文件本质是一个properties的格式,所以可以用#注释,Java原生方法读取会忽略被注释的行。 为什么先学习FactoryB

hexon hexon 发布于 2025-12-23

7、扩展:什么是JFR?Spring中是如何利用它的?

在前面看Spring源码的过程中,有下面的代码: public AnnotationConfigApplicationContext() { StartupStep createAnnotatedBeanDefReader = getApplicationStartup().start("s

hexon hexon 发布于 2025-12-20

6、扩展:ScopedProxyMode的作用和底层实现

在分析BeanDefinition扫描过程源码时,@ComponentScan注解中有一个ScopedProxyMode,本节我们来了解下它的作用和原理。 内容回顾 其实源码中有两个地方有这个ScopedProxyMode,一个处是在org.springframework.context.annot

hexon hexon 发布于 2025-12-17

5、扩展:ComponentsIndex机制的作用和底层实现

我在分析BeanDefnition扫描过程中,有下面这样一段源码: org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider#findCandidateComponents public Se

hexon hexon 发布于 2025-12-17

4、BeanDefinition扫描过程源码解析

经过前两篇文章的学习,我们已经具备了阅读源码的基础。接下来,我们将正式进入 Spring Bean 生命周期 的学习。 建议的学习路径是:先理解 Bean 的生命周期,再分析容器的启动过程。原因在于: 1. Bean 的扫描与注册是生命周期的起点 容器启动时所做的核心工作之一,就是扫描并解析 Bea

hexon hexon 发布于 2025-12-17