IDEA新建Springboot项目加载外部配置时的问题

543 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第32天,点击查看活动详情

记录一次IDEA新建Springboot项目加载外部配置时的问题

使用Idea新建springboot工程,需要使用外部的配置文件;

在这里插入图片描述 整体的目录结构如下:

按照以下流行的说法,应该是可以直接加载的。

Spring Boot启动会扫描以下位置的application.properties或者application.yml文件作为spring boot的默认配置文件

  • file:/config/
  • file:./
  • classpath:/config/
  • classpath:/

以上是按照优先级从高到低的顺序,所有位置的文件都会被加载,高优先级的配置内容会覆盖低优先级配置内容。我们也可以通过配置spring.config.location来改变默认配置。

后来直接新建config文件夹,添加配置文件后好像不行。 在这里插入图片描述

解决方案:

通过如下配置解决了IDEA里的运行问题:

1、设置working directory

在这里插入图片描述

在这里插入图片描述 2、设置config文件夹未resources:在这里插入图片描述 在这里插入图片描述 设置后可以启动成功: 在这里插入图片描述

打包问题

打包不需要特殊配置,需要如下插件:

  <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>

打包操作如下: 在这里插入图片描述 打包后生成jar, 添加config文件夹下的配置文件启动:java -jar demo.jar 后报错如下: 在这里插入图片描述

在这里插入图片描述 报错信息: no subdirectories found for mandatory directory location 'file:./config/*/'. 没明白为啥这样。。。。。;

根据提示信息,说是缺少子文件夹。所以

在config文件夹下 建一个文件夹,名称随意

java -jar 重启服务

问题解决;