SpringApplication 类
基于Spring Boot框架技术的项目中,SpringApplication
类是起点类的核心,它提供了一种快捷方式来启动Spring应用程序。在主方法(main method)中调用它,即可启动Spring应用上下文(application context)。SpringApplication
负责引导应用程序,启动Spring的相关组件,进行自动配置,并初始化应用程序所需的各种组件。
以下是一个的典型的起点类的例子:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication // 注解表明这是一个Spring Boot应用
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args); // 启动应用
}
}
在这个例子中,@SpringBootApplication
注解表明该类是Spring Boot应用的入口点。该注解是一个便利的注解,它组合了以下三个注解的功能:
@Configuration
:标记该类作为配置类,允许你在此定义额外的bean或导入其他配置类。@EnableAutoConfiguration
:告诉Spring Boot基于类路径设置、其他bean和各种属性设置开始添加bean,即开启自动配置。@ComponentScan
:告诉Spring去寻找其他组件、配置和服务于当前包位置,即扫描当前包及其子包中的Spring组件。
当你运行一个Spring Boot应用时,main
方法会调用SpringApplication.run()
。这个方法负责启动Spring应用的上下文(ApplicationContext)。这个上下文是一个高级容器,负责实例化、配置和装配Bean。
Spring Boot通常使用AnnotationConfigApplicationContext
或其子类来作为应用的上下文,这允许使用注解来配置Spring应用。Spring Boot的自动配置特性大量依赖这些注解,如@ComponentScan
、@EnableAutoConfiguration
。
一旦ApplicationContext被初始化,所有的Bean都会被创建并根据依赖进行注入。Spring Boot应用会继续运行,直到它被关闭或发生错误。在应用关闭时,Spring容器会清理资源并调用任何定义的销毁方法。
除了启动Spring应用程序外,SpringApplication
类还提供了许多定制化的方法,这就涉及到一些高级功能, 例如你可以设置Banner模式(关闭或修改启动时的SpringBoot banner)、监听应用事件等功能。