一、问题描述

在学习SpringBoot配置profile的时候,.yml文件内容明明跟老师敲的一模一样,但还是报错ERROR org.springframework.boot.SpringApplication — Application run failed

原.yml文件内容:

--- server : port : 8081 spring:profiles: dev--- server : port : 8082 spring:profiles: test--- server : port : 8083 spring:profiles: pro--- spring:profiles: active: pro

报错如下:

二、解决方法

按照“ERROR org.springframework.boot.SpringApplication — Application run failed”搜索答案,试了好久都没能解决,还是回过头来一句句分析自己的报错情况吧!

发现报错中提示“Property ‘spring.profiles’ imported from location ‘class path resource [application.yml]’ is invalid and should be replaced with ‘spring.config.activate.on-profile’…”,感悟到一点意思了,spring.profiles应该被spring.config.activate.on-profile代替。

“spring.profiles”我在yml文件里写过,怀疑是不是要改为spring.config.activate.on-profile的意思。将原句删除后,当输入s时提示框里便出现了“spring.config.activate.on-profile”,果不其然。

得出两点体悟:

1、不要死读书不变通,老师讲的内容照抄照搬过来不一定在自己的环境版本下运行顺利;

2、遇事应沉着冷静,不要胡乱发力,找准痛点,扎扎实实去分析解决。

三、修改之后的.yml文件内容

--- server : port : 8081 spring:config: activate:on-profile: dev--- server : port : 8082 spring:config: activate:on-profile: test--- server : port : 8083 spring:config: activate:on-profile: pro--- spring:profiles: active: pro

四、控制台运行结果