No spring.config.import property has been defined
While creating Spring Boot cloud config application getting below error. Any help on this?
No spring.config.import property has been defined
Action:
Add a spring.config.import=configserver: property to your configuration.
If configuration is not required add spring.config.import=optional:configserver: instead.
To disable this check, set spring.cloud.config.enabled=false or
spring.cloud.config.import-check.enabled=false.
Solution: Add the below dependency in the pom.xml
file:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
That resolved my issue.
Root cause is Spring Boot 2.4 changed its default functionality. A new spring.config.import
property is mandatory.
To fix, add the new spring.config.import
property. Here is an example of what worked for me in application.yml
.
spring:
config:
import: "optional:configserver:"
Here is the documentation in case you need to set a different value:
Spring Boot Config Data Import
Spring Boot 2.4 introduced a new way to import configuration data via the spring.config.import property. This is now the default way to bind to Config Server.
You're getting this error because you're using a new version of Spring Boot and Spring Cloud, but you're trying to configure it in the old way.
The Reason
Spring Cloud Config Client has changed and technically bootstrap.properties
and bootstrap.yml
files are deprecated.
Correct Solution
- Move all properties from
boostrap.properties
toapplication.properties
(it can be.yml
as well) - Remove
bootstrap.properties
file - Replace
spring.cloud.config.uri=http://localhost:8888
withspring.config.import=configserver:http://localhost:8888
This is a proper way to tell you Spring Boot app that you want to load properties from the Spring Cloud Config service that is running on localhost:8888
.
Legacy Solution
In case you want to use a legacy bootstrap.properties
file, you just need to add the following dependency:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Please note that this is a deprecated mechanism, so if you're creating a new project, go ahead with the correct solution.