SpringApplication.run 方法有什么功能?参数和返回值的作用?

几乎所有的 Springboot 程序都有一个看上去长得很像的主类,用于启动程序。如下面的代码,有一个注解 @SpringBootApplication,一个main方法,里面只有一行代码。类名是创建项目时输入的项目名称(去掉特殊字符)加上Application。

@SpringBootApplication
public class NacosConfigApplication {

	public static void main(String[] args) {
		SpringApplication.run(NacosConfigApplication.class, args);
	}

}

SpringApplication.run方法

SpringApplication.run 是 Spring Boot 框架中的一个重要方法,用于启动一个 Spring Boot 应用。

功能

SpringApplication.run 方法的主要功能是初始化并启动一个 Spring Boot 应用。这包括加载应用的配置,创建 Spring 应用上下文,注册并初始化所有的 Spring 组件,以及启动嵌入式的 Web 服务器(如果应用是一个 Web 应用)。

参数

SpringApplication.run 方法接受两个参数:

  1. Class<?> primarySource:这个参数通常是主应用类的 Class 对象。Spring Boot 会使用这个类来推断应用的配置,例如应用的名称、应用的入口点等。此外,Spring Boot 还会扫描这个类所在的包及其子包来查找并注册所有的 Spring 组件。
  2. String... args:这个参数是一个字符串数组,它通常包含了从命令行传递给应用的参数。这些参数可以在应用中通过 SpringApplication.getCommandLineArgs() 方法获取,并用于配置应用的行为。

返回值

SpringApplication.run 方法的返回值是一个 ConfigurableApplicationContext 对象。这个对象代表了 Spring 应用上下文,它包含了应用中所有的 Spring 组件和配置信息。你可以通过这个对象来获取或操作应用中的任何 Spring 组件。

例如,你可以通过 ConfigurableApplicationContext.getBean(Class<T> requiredType) 方法来获取一个特定类型的 Spring 组件。此外,你还可以使用 ConfigurableApplicationContext.close() 方法来关闭应用上下文,从而优雅地关闭 Spring Boot 应用。

总的来说,SpringApplication.run 方法是启动 Spring Boot 应用的入口点,它负责初始化并启动应用,并返回一个代表应用上下文的对象,以便你可以在应用运行时进行各种操作。

@SpringBootApplication注解

@SpringBootApplication 是 Spring Boot 提供的一个核心注解,它用于指示一个主类,该类会启动 Spring Boot 应用。这个注解实际上是多个注解的集合,它简化了 Spring Boot 应用的配置。

具体来说,@SpringBootApplication 包含了以下三个注解:

  1. @SpringBootConfiguration:这个注解用于指示当前类是一个 Spring Boot 配置类,它定义了 bean 如何创建以及如何注入依赖。通常,我们会在这个类中使用 @Bean 注解来定义 bean,或者通过 @ComponentScan 来指定组件扫描的路径。

  2. @EnableAutoConfiguration:这个注解告诉 Spring Boot 根据添加的 jar 依赖自动配置你的 Spring 应用。例如,如果你添加了 Spring Boot Web 依赖,那么 Spring Boot 会自动配置一个嵌入式 Tomcat 服务器、一个 DispatcherServlet,以及其他必要的 web 组件。通过自动配置,你可以快速启动一个应用而无需编写大量的配置代码。

  3. @ComponentScan:这个注解用于指定 Spring 应该扫描的包,以查找并注册所有标注了 @Component@Service@Repository 和 @Controller 等注解的类作为 Spring Bean。默认情况下,@SpringBootApplication 注解会扫描启动类所在的包及其子包。

使用 @SpringBootApplication 注解可以极大地简化 Spring Boot 应用的配置工作。你只需要在一个主类上添加这个注解,并通过 SpringApplication.run() 方法启动应用即可。

示例:

import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
  
@SpringBootApplication  
public class MySpringBootApplication {  
  
    public static void main(String[] args) {  
        SpringApplication.run(MySpringBootApplication.class, args);  
    }  
  
}

在这个例子中,MySpringBootApplication 类上标注了 @SpringBootApplication 注解,表示它是 Spring Boot 应用的主类。main 方法中调用了 SpringApplication.run() 方法来启动应用。由于 @SpringBootApplication 注解的存在,Spring Boot 会自动配置应用并启动嵌入式服务器(如果依赖中存在 Web 相关的库)。

  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因上精进,果上随缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值