SpringBoot启动时无法加载自定义配置文件(根据环境不同,本地和生产)

问题背景

 springboot启动的时候总是报找不到ftp_upload.properties.

估计同学该诧异了,明明就是在项目下的config下,为啥找不到呢?我们都知道springboot的配置文件启动加载顺序是:     

第一: ./config/(项目根目录下的config文件夹下的配置文件)。

第二:./(项目根目录下的配置文件)。

第三:classpath下的config文件夹下的配置文件。

第四:classpath下的配置文件。

这四个,是从高到低的顺序排列,一是优先级最高的,也就是项目根目录下的config下配置文件。

这部分知识可以看另外的博客:springboot配置文件加载顺序 - wang_longan - 博客园

但是为啥启动报错找不到呢?下面是解决办法

解决办法

            <resource>
                <directory>config</directory>
                <includes>
                    <!-- 根据目录下的文件配置需要扫描的文件类型 -->
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <!-- 根据目录下的文件配置需要扫描的文件类型 -->
                    <include>**/*.yml</include>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>

这时本地的启动,应该是没问题了。

这个文件也能找到了。

 

 可以看到classes下也有config下的文件了。

很顺利,但是大部分的文档都是言尽于此。我遇到了在linux中,发布项目,config下仍旧找不到ftp_upload.properties文件。

以下是linux的目录

 在bin下start.sh启动的时候,会到这个目录下启动java -jar  XXX.jar

经过测验,把引用ftp_upload.properties的java代码先注释,然后修改了linux的项目下config下的yml文件内端口号,是可以启动的,那就是启动可以找到application-dev.yml文件,但是找不到ftp_upload.properties文件,这么奇怪呢?之后找到了一个配置:

然后就能顺利找到 ftp_upload.properties这个文件了。

修改ftp_upload.properties下的配置信息,也能顺利拿到最新的修改信息。

大功告成。

猜你喜欢

转载自blog.csdn.net/weixin_38340874/article/details/128417302
今日推荐