SpringCloud Alibaba微服务启动报错原因及解决方案
作者:DN金猿
这篇文章给大家介绍了SpringCloud Alibaba微服务启动报错原因及解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
控制台日志打印异常信息
17:14:12.648 [main] DEBUG org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - Application failed to start due to an exception
org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor$ImportException: No spring.config.import set
at org.springframework.cloud.commons.ConfigDataMissingEnvironmentPostProcessor.postProcessEnvironment(ConfigDataMissingEnvironmentPostProcessor.java:82)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEnvironmentPreparedEvent(EnvironmentPostProcessorApplicationListener.java:102)
at org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.onApplicationEvent(EnvironmentPostProcessorApplicationListener.java:87)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:145)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:133)
at org.springframework.boot.context.event.EventPublishingRunListener.environmentPrepared(EventPublishingRunListener.java:85)
at org.springframework.boot.SpringApplicationRunListeners.lambda$environmentPrepared$2(SpringApplicationRunListeners.java:66)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:120)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:114)
at org.springframework.boot.SpringApplicationRunListeners.environmentPrepared(SpringApplicationRunListeners.java:65)
at org.springframework.boot.SpringApplication.prepareEnvironment(SpringApplication.java:344)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1300)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1289)
at com.mall.user.UserApplication.main(UserApplication.java:15)
17:14:12.651 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter -
***************************
APPLICATION FAILED TO START
***************************
Description:
No spring.config.import property has been defined
Action:
Add a spring.config.import=nacos: property to your configuration.
If configuration is not required add spring.config.import=optional:nacos: instead.
To disable this check, set spring.cloud.nacos.config.import-check.enabled=false.配置文件

以上是一个服务启动时的日志,无法启动。配置文件中没配置spring.cloud.nacos.config,为什么仍然提示配置spring.config.import?
原因及解决方案
问题很清楚。mall-user/pom.xml 中依赖了 spring-cloud-starter-alibaba-nacos-config,Spring Cloud Alibaba 2021.0.5.0 会强制校验 spring.config.import 是否配置——跟 application.yml 里有没有 spring.cloud.nacos.config 块无关。
你有三种修复方式,选一种即可:
方案一:禁用强制检查(最简单)
spring:
cloud:
nacos:
config:
import-check:
enabled: false适用场景:只需要 discovery,不需要 config 中心。
方案二:补上spring.config.import
spring:
config:
import:
- optional:nacos:mall-user.yaml?refreshEnabled=true适用场景:确实需要从 Nacos 加载配置。但要注意 Nacos 上 mall-user.yaml 的编码问题(之前报 MalformedInputException 就是因为 Nacos 上的文件编码不是合法 UTF-8)。
方案三:从 pom.xml 移除 config 依赖(最彻底)
把 mall-user/pom.xml 中的这一行删掉:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>适用场景:完全不需要 Nacos 配置中心,只用 discovery。
建议:先用方案一快速恢复启动,后续如果要用配置中心再切到方案二并修复 Nacos 上的文件编码。
到此这篇关于SpringCloud Alibaba微服务启动报错原因及解决方案的文章就介绍到这了,更多相关SpringCloud Alibaba启动报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
