https://www.nowcoder.com/feed/main/detail/5b876b53330149a9b2d20612852c84d2
chatgpt
Spring 框架的启动流程是从 Spring 容器 的初始化开始,逐步加载和配置应用程序的组件(如 Bean、事件、监听器等),最终启动一个完整的应用上下文。以下是 Spring 启动流程的详细解析,主要以 Spring ApplicationContext 的初始化为核心:
@Configuration
和 @ComponentScan
)。@SpringBootApplication
)。Environment
对象,用于管理环境变量、属性和 profiles(如 application.properties
的内容)。ApplicationContext
ApplicationContext
) 实例,例如:
ClassPathXmlApplicationContext
:基于 XML 的配置。AnnotationConfigApplicationContext
:基于注解的配置。GenericApplicationContext
:通用应用上下文。@ComponentScan
注解或配置的扫描路径,找到需要加载的 Bean 类。@Component
、@Service
、@Repository
或 @Controller
的类。BeanDefinition
对象,并注册到容器中。BeanDefinition
包含 Bean 的配置信息,如作用域(singleton
或 prototype
)、依赖关系等。BeanDefinition
,加载 Bean 的定义信息。