springboot启动的类加载过程
时间: 2023-11-01 11:38:27 浏览: 148
Spring Boot启动类加载过程如下:
1. Spring Boot启动时,会先加载由@SpringBootApplication注解标记的主类。
2. 主类中的main方法会被调用,创建一个SpringApplication对象。
3. SpringApplication会根据主类所在的包路径,自动扫描所有的@Component、@Service、@Repository、@Controller等注解标记的类,将它们注册为Bean,并且将它们的依赖关系构建出来。
4. SpringApplication会根据主类所在的包路径,自动扫描所有的@Configuration注解标记的类,并根据其中的@Bean注解标记的方法创建Bean,并将它们注册到Spring容器中。
5. SpringApplication会根据主类所在的包路径,自动扫描所有的@Import注解标记的类,并将它们注册到Spring容器中。
6. SpringApplication会根据主类所在的包路径,自动扫描所有的@EnableAutoConfiguration注解标记的类,并将它们的配置信息加载到Spring容器中。
7. Spring Boot应用启动完成后,可以通过Spring容器获取Bean并进行操作。
总之,Spring Boot启动的类加载过程就是扫描、注册、装配Bean的过程,最终构建出完整的Spring应用程序。
相关问题
springboot启动类加载过程
Spring Boot启动类的加载过程如下:
1. 首先加载main方法所在的类,即启动类。
2. 启动类中使用了@SpringBootApplication注解,该注解包含了多个子注解,其中最重要的是@EnableAutoConfiguration注解。
3. @EnableAutoConfiguration注解会自动扫描classpath下的所有jar包,并将符合条件的配置类加载到Spring IoC容器中。
4. 自动配置类会根据当前classpath中的jar包和类库,进行一系列的自动配置和初始化操作,例如配置数据库连接池、启用缓存等。
5. Spring Boot会自动创建一个内嵌的Tomcat容器,并将所有的Spring Bean注册到该容器中。
6. 最后,Spring Boot会启动Tomcat容器,等待接收HTTP请求。
总之,Spring Boot的启动类是整个应用的入口,在启动过程中,它会自动加载所有的配置和依赖,并启动内嵌的Tomcat容器,从而完成整个应用的初始化和启动。
springboot 启动时类加载顺序
Spring Boot 应用启动时的类加载顺序大致如下:
1. **Bootstrap Classpath 初始化**:应用程序从Bootstrap Classpath开始加载,这个路径通常包含Spring Boot的启动类(如`Application.java`)和一些核心库。
2. **读取配置文件**:Spring Boot会尝试读取`application.properties`或`application.yml`等配置文件,设置初始化环境。
3. **创建 Spring Application 实例**:根据配置文件的信息,Spring框架会创建一个`SpringApplicationBuilder`实例,并指定应用主类。
4. **构建 ClassPath 断点**:Spring Boot会构建一个ClassPathScanner,扫描类路径上所有的Java类,包括自动发现的组件(如@Controller、@Service等)。
5. **注册 Bean 容器**:`SpringApplication`实例会使用`ApplicationContextInitializer`和`EnvironmentPostProcessor`来自定义初始化流程,然后创建`BeanFactory`或`ApplicationContext`。
6. **自动装配(Auto-Configuration)**:Spring Boot会运行预定义的`@Configuration`类,也就是自定义的配置类,它们负责基于条件自动配置所需的bean。
7. **组件扫描(Component Scanning)**:通过`@ComponentScan`注解,Spring会扫描指定包及其子包下的所有组件并注册它们作为bean。
8. **执行 Startup Beans**:最后,Spring Boot会调用`run()`方法,执行Startup Beans(通常是实现了`CommandLineRunner`或`ApplicationRunner`接口的类),完成应用的初始化过程。
阅读全文