Spring Framework 启动流程
1. 流程图
以下流程图展示了 Spring Framework 从创建 ApplicationContext
到完成初始化的关键步骤。
flowchart TD A[启动入口: main 方法] --> B[创建 AnnotationConfigApplicationContext]
以下流程图展示了 Spring Framework 从创建 ApplicationContext
到完成初始化的关键步骤。
flowchart TD A[启动入口: main 方法] --> B[创建 AnnotationConfigApplicationContext]
Spring Framework 与 Spring Boot 启动对比
Spring Boot 和 Spring Framework 都是构建现代 Java 企业级应用程序的强大工具。Spring Boot 基于 Spring Framework 之上,旨在简化 Spring 应用的创建和配置过程。尽管两者在启动流程上存在许多相似之处,但 Spring Boot 引入了一些额外的机制和约定,以提高开发效率和应用的可扩展性。以下将详细对比两者的启动流程,强调它们的异同点,并结合源码角度进行说明。
Spring Boot 简化了基于 Spring 的应用程序的创建和部署过程,其启动流程涉及多个步骤和组件。为了详细理解 Spring Boot 的启动流程,我们可以从源码的角度进行分析。以下是 Spring Boot 启动过程的详细介绍,结合关键源码类和方法进行说明。
通常,Spring Boot 应用程序的启动入口是一个带有 main
方法的类,该类使用 @SpringBootApplication
注解。例如:
1 |
|
使用 Spring Boot + Javassist 实现运行时动态添加和删除 Controller
在某些特殊场景下,我们可能需要在 Spring Boot 应用运行时动态地添加或删除 Controller。本文将详细介绍如何使用 Javassist 和 Spring Boot 的内部机制来实现这个功能。
1 | <parent> |
xjc
是 Java Architecture for XML Binding (JAXB) 的一部分,它是一个命令行工具,用于将 XML 架构(XML Schema)转换为 Java 类。以下是 xjc
工具的基本用法:
1 | xjc [options] <schema file/URL/dir> |
SpringApplication 启动过程主要包括两个阶段:
1 | public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources) { |
这里我们创建一个子模块,创建步骤同 SpringBoot_01_入门示例
1 | group = 'com.ray.study' |
- static代码块: static静态代码块,在类加载的时候即自动执行
- 构造方法: 在对象初始化时执行。执行顺序在static静态代码块之后。