解决springboot无法加载application.yaml文件

160 阅读1分钟

在启动类里加入

public class OjBackendGatewayApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(OjBackendGatewayApplication.class);
        app.setDefaultProperties(Collections.singletonMap("spring.config.location", "classpath:/application.yaml"));
        app.run(args);
    }
 
}

这段代码是用来启动一个Spring Boot应用的。具体的含义如下:

  1. SpringApplication app = new SpringApplication(OjBackendGatewayApplication.class);

    • 这里创建了一个 SpringApplication 实例,用来启动 Spring Boot 应用。OjBackendGatewayApplication.class 是应用的主类(通常是加了 @SpringBootApplication 注解的类),它会启动 Spring Boot 的默认配置。
  2. app.setDefaultProperties(Collections.singletonMap("spring.config.location", "classpath:/application.yaml"));

    • 这行代码设置了 Spring Boot 配置文件的路径。通常,Spring Boot 会默认读取 application.propertiesapplication.yml 文件作为配置文件。这里通过 setDefaultProperties 方法手动指定了配置文件的路径为 classpath:/application.yaml,即在类路径下的 application.yaml 文件。
    • Collections.singletonMap("spring.config.location", "classpath:/application.yaml") 创建了一个包含单一键值对的 Map,其中键是 spring.config.location,值是配置文件的路径。
  3. app.run(args);

    • 最后,这行代码启动了 Spring Boot 应用。args 是传递给应用的命令行参数,通常用于定制应用启动时的行为。 指定从resource目录下加载application.yaml文件,重启即可.