spring boot是如何启动
-
Spring Boot启动是通过执行主类中的main方法来完成的。
首先,在主类中添加@SpringBootApplication注解,该注解是Spring Boot的核心注解之一,它包含了多个注解的组合,主要用于启动Spring Boot应用。@SpringBootApplication注解中包含了@ComponentScan、@EnableAutoConfiguration和@Configuration三个注解。
@ComponentScan注解用于指定Spring组件扫描的基础包名,它会自动扫描被@Component、@Service、@Repository和@Controller注解标注的类,并注册为Spring容器的Bean。
@EnableAutoConfiguration注解用于开启Spring Boot的自动配置功能,它会根据项目中引入的依赖自动配置Spring Boot应用所需的配置信息,例如数据库连接、Web服务器等。
@Configuration注解表示该类是一个配置类,Spring会根据该类中的配置信息来创建Bean。
其次,在主类中定义main方法,使用SpringApplication类的静态run方法来启动Spring Boot应用,该方法接受两个参数:主类的Class对象和命令行参数。
SpringApplication.run(MainClass.class, args);run方法会依次执行以下操作:
- 创建SpringApplication实例;
- 获取应用上下文ApplicationContext;
- 加载配置信息;
- 注册Bean;
- 启动应用。
在启动过程中,Spring Boot会根据配置信息初始化Spring容器,包括创建Bean、注入依赖等操作,然后启动内嵌的Web服务器(如Tomcat),监听指定端口,等待请求的到来。
总之,Spring Boot的启动过程主要包括添加@SpringBootApplication注解和执行main方法。在启动过程中,会根据配置信息初始化Spring容器并启动内嵌的Web服务器。通过这种方式,可以快速、简便地构建和启动Spring Boot应用。
1年前 -
Spring Boot的启动过程主要由以下几个步骤组成:
-
引导类加载:Spring Boot项目的入口是一个特定的引导类,通常是带有
@SpringBootApplication注解的类。该注解是一个组合注解,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan等注解,用于配置和启用Spring Boot的自动配置和组件扫描功能。在启动过程中,Java虚拟机(JVM)会通过该引导类来加载和初始化Spring Boot应用。 -
自动配置加载:Spring Boot的核心特性之一是自动配置,它根据项目的依赖和配置来自动配置应用程序的各个组件。在启动过程中,Spring Boot会根据类路径上的配置来加载自动配置类,并将其应用于应用程序的上下文中。自动配置类是通过在项目的依赖中引入相应模块的方式来启用的。例如,如果项目中引入了Spring Data JPA的依赖,Spring Boot会自动为数据库访问提供相关的配置和Bean。
-
应用程序上下文创建:Spring Boot在启动过程中会创建一个应用程序上下文(Application Context),用于管理应用程序的各个组件和配置。应用程序上下文是Spring框架的核心部分,它提供了依赖注入(DI)和面向切面编程(AOP)等重要的功能。在启动过程中,Spring Boot会根据类路径上的配置和自动配置来创建和初始化应用程序上下文。
-
组件扫描和初始化:在应用程序上下文创建完成后,Spring Boot会进行组件扫描,将带有
@Component、@Service、@Controller和@Repository等注解的类实例化为Bean,并将其加入应用程序上下文中。此外,Spring Boot还会扫描并初始化其他一些特殊的组件,例如CommandLineRunner和ApplicationRunner等接口的实现类,在应用程序启动后执行特定的操作。 -
启动应用程序:启动过程的最后一步是启动应用程序本身。Spring Boot会调用应用程序上下文的
refresh()方法来刷新上下文,并触发各个组件的初始化和依赖注入。最终,应用程序会开始监听指定的端口,接受来自客户端的请求并进行处理。
总结起来,Spring Boot的启动过程主要包括引导类加载、自动配置加载、应用程序上下文创建、组件扫描和初始化以及应用程序的启动等步骤。这些步骤使得Spring Boot能够在简化配置和提高开发效率的同时,快速启动和运行应用程序。
1年前 -
-
Spring Boot启动的过程可以分为以下几个步骤:
-
加载Spring Boot配置:Spring Boot通过读取配置文件中的属性来进行初始化。配置文件可以是application.properties或application.yml。
- 如果是.properties文件,Spring Boot会调用
PropertiesLoaderUtils.loadAllProperties()方法进行加载。 - 如果是.yml文件,Spring Boot会使用YAML解析器进行加载。
- 如果是.properties文件,Spring Boot会调用
-
创建Spring Boot应用程序类:Spring Boot应用程序需要一个主类作为入口点。这个类使用
@SpringBootApplication注解来标记,并且必须包含一个静态的main方法。@SpringBootApplication是一个复合注解,包含@EnableAutoConfiguration、@ComponentScan和@Configuration注解。@EnableAutoConfiguration启用自动配置,根据Maven/Gradle的依赖关系自动配置Spring配置。@ComponentScan扫描被注解的包及其子包来查找Spring组件。
-
创建Spring应用程序上下文:Spring框架使用
ApplicationContext接口表示应用程序上下文。- Spring Boot使用
SpringApplication.run()方法创建并初始化应用程序上下文。这个方法接受一个主类和命令行参数作为参数。
- Spring Boot使用
-
自动配置:Spring Boot根据类路径的配置来自动配置Spring应用程序。
- Spring Boot在应用程序上下文中自动配置很多常用的功能,例如数据源、事务管理器、模板引擎等。
- Spring Boot使用自动配置的条件注解来控制哪些功能需要启用,例如
@ConditionalOnClass、@ConditionalOnMissingBean等。 - 如果需要自定义配置,可以使用
@Configuration注解和@Bean注解。
-
运行Spring Boot应用程序:Spring Boot使用嵌入式的Servlet容器来运行应用程序,例如Tomcat、Jetty等。
- Spring Boot根据配置文件中的属性来选择和配置嵌入式Servlet容器。
- 默认情况下,Spring Boot使用内嵌的Tomcat容器。
- 可以使用
spring-boot-starter-web依赖来启用Web应用程序并自动配置嵌入式Servlet容器。
-
关闭Spring Boot应用程序:可以使用
ApplicationContext.close()方法来关闭应用程序上下文。- 也可以使用
ApplicationExit接口和SpringApplication.exit()方法来关闭应用程序。
- 也可以使用
以上是Spring Boot启动的基本流程。通过自动配置和简化配置,Spring Boot使得开发人员可以更容易地构建和运行Spring应用程序。
1年前 -