springboot 启动加载类
时间: 2023-10-12 10:00:25 浏览: 104
在 Spring Boot 中,可以使用以下方式来加载类:
1. 自动配置:Spring Boot 自动配置会扫描 classpath 下的特定包并加载相应的类。
2. 组件扫描:通过在启动类上添加 `@ComponentScan` 注解,可以指定需要扫描的包。
3. 手动加载:可以在启动类中使用 `Class.forName()` 或者 `ClassLoader.loadClass()` 方法手动加载类。
4. Spring ApplicationContext:Spring Boot 启动时会自动加载 ApplicationContext,可以在 ApplicationContext 中注册需要加载的类。
需要注意的是,Spring Boot 启动时会加载很多类,如果需要自定义加载的类,应该优先考虑使用自动配置或者组件扫描的方式。
相关问题
springboot 启动加载指定类
在 Spring Boot 中,可以通过在 application.properties 或 application.yml 文件中设置 spring.autoconfigure.exclude 属性来排除不需要加载的自动配置类,例如:
```
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
```
这将排除 Spring Boot 默认的 DataSource 自动配置类。
另外,还可以通过在启动类上添加 @EnableAutoConfiguration 注解的 exclude 属性来排除自动配置类,例如:
```java
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class MyApplication {
// ...
}
```
这将排除 DataSource 自动配置类。
springboot启动加载顺序
Spring Boot应用程序的启动流程是一个精心设计的过程,主要包括以下几个步骤:
1. **初始化环境**:首先,Spring Boot会检查系统的环境变量和命令行参数,如`JAVA_OPTS`,以及应用目录下的`application.properties`或`application.yml`文件,设置基础配置。
2. **启动类加载**:找到包含主类的JAR包,并通过类路径加载这个类。Spring Boot会寻找`@SpringBootApplication`注解的类作为主入口。
3. **应用上下文准备**:Spring Boot的核心工具`SpringApplication`会开始构建应用程序上下文(ApplicationContext)。这个过程中,它会解析配置,注册自动配置组件,以及加载依赖。
4. **容器初始化**:Spring框架初始化Spring IoC容器,也就是BeanFactory或ApplicationContext,创建并装配所有的bean。
5. **bean实例化与依赖注入**:根据应用程序上下文,Spring按照依赖关系创建和初始化bean,包括其他bean的依赖项。
6. **生命周期回调**:每个bean在创建后都会经历各种生命周期回调,例如`afterSingletonsInstantiated()`和`afterPropertiesSet()`。
7. **启动服务**:最后,调用主类的`run()`方法,如果有特定的`CommandLineRunner`或`ApplicationRunner`,它们会在启动完成后运行。
8. **关闭日志和监听器**:启动完成后,日志框架和其他监听器会被关闭,整个启动过程结束。
阅读全文