Reputation: 1382
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.
Upvotes: 138
Views: 304138
Reputation: 11
Add the following to application properties this worked for me change ports as needed
spring.application.name=exchange-service
spring.config.import=optional:configserver:http://localhost:8001
server.port=8001
spring.cloud.config.enabled=true
Upvotes: 1
Reputation: 1
maven clean install will resolve the problem. It worked for me.
Upvotes: 0
Reputation: 11
cloud: config: uri: http://localhost:9296(Your port no)
this works fine for me.
Upvotes: 0
Reputation: 1
I am using Spring Boot 3.0.3 version, to solve this problem simply add in the application.properties file
spring.cloud.config.enabled=false
It will read the configuration from your local properties file and not from GIT repository if you have configured.
Upvotes: 0
Reputation: 89
I'm using Spring Cloud Config Server on port 8191 on localhost, Spring version 3.1.0 and Java 17
I have 2 answer for this
application.yml
like bellowspring:config:import: configserver:http://localhost:8191
In this case I don't have bootsrap.yml file
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
And add bootstrap.yml
file, my bootstrap file in that case like
spring:cloud:config:uri: http://localhost:8191
Upvotes: 3
Reputation: 1191
Just import this dependency in pom.xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Note: SNAPSHOT, M1, M2, M3, and M4 releases typically WORK IN PROGRESS. The Spring team is still working on them, Recommend NOT using them.
Upvotes: 4
Reputation: 407
After applying any of the solutions mentioned for this question. You can give this a try:
Step 1: If on IntelliJ IDE, right-click on the 'pom.xml' file of the project.
Step 2: Find 'Maven' on the context menu. Then click on 'Reload project'.
Step 3: Next, try 'mvn clean install' and try running once again.
PS: I am still looking for the reason how it worked for me. (Maybe maven related)
Upvotes: 0
Reputation: 1665
1- for maven add:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
2- for gradle add:
dependencies{ implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap'}
3- in application.properties replace(old configuration):
spring.cloud.config.uri=http://localhost:8888
by this:
spring.config.import=configserver:http://localhost:8888
Upvotes: 0
Reputation: 2408
Solution for Maven
Add the below dependency in the pom.xml
file:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Solution for Gradle
Add in the build.gradle
file:
implementation('org.springframework.cloud:spring-cloud-starter-bootstrap')
That resolved my issue.
Upvotes: 232
Reputation: 990
If anybody is passing this error on spring-boot 2.7.0 version during tests phase put the following on src/test/application.properties
spring.cloud.config.enabled=false
If don't want to use config server for tests.
Upvotes: 2
Reputation: 1688
In SpringBoot v2.7.1 this solution worked for me:
My Microservice bootstrap.properties
file:
spring.application.name=microservice-name
spring.cloud.config.uri=http://localhost:8888 # the URL of your server configuration
And add the following dependency:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
Upvotes: 1
Reputation: 1
For spring version > 2.6.6 add below property in application.property.
spring.application.name=... //name of application
spring.profiles.active=prodtest
spring.config.import=optional:configserver:http://localhost:8071
spring.cloud.config.enabled=true
spring.cloud.config.uri=http://localhost:8071
management.endpoints.web.exposure.include=*
eureka.instance.preferIpAddress = true
eureka.client.registerWithEureka = true
eureka.client.fetchRegistry = true
eureka.client.serviceUrl.defaultZone = http://localhost:8070/eureka/
Upvotes: -1
Reputation: 1829
I got past the error using a version of spring 2.4.4 I was working in that moment with 2.5.1
application.properties:
`
spring.application.name=testserv
spring.profiles.active=prodtest
spring.config.import=optional:configserver:http://localhost:8071
spring.cloud.config.enabled=true
spring.cloud.config.uri=http://localhost:8071
management.endpoints.web.exposure.include=*
eureka.instance.preferIpAddress = true
eureka.client.registerWithEureka = true
eureka.client.fetchRegistry = true
eureka.client.serviceUrl.defaultZone = http://localhost:8070/eureka/
`
<spring-cloud.version>2020.0.3</spring-cloud.version>
Upvotes: 0
Reputation: 2479
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.
Spring Cloud Config Client has changed and technically bootstrap.properties
and bootstrap.yml
files are deprecated.
boostrap.properties
to application.properties
(it can be .yml
as well)bootstrap.properties
filespring.cloud.config.uri=http://localhost:8888
with spring.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
.
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.
Upvotes: 126
Reputation: 732
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.
Upvotes: 52
Reputation: 170
Add bootstrap.yml
file:
spring:
cloud:
config:
enabled: true
uri: http://localhost:9296
where 9296 is your cloud-config server port
and add below dependency:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
If above doesn't work, simply add below properties to your application.yml
file to stop the port check at place as you've already defined that in bootstrap.yml
spring:
cloud:
config:
import-check:
enabled: false
Upvotes: 16
Reputation: 1249
Importing configuration since Spring Boot 2.4 is done by spring.config.import
functionality.
Adding below to application.properties
connects to the default config server URL http://localhost:8888
.
spring.config.import=optional:configserver:
or yml:
spring.config.import: "optional:configserver:"
More configuration options are described in the reference documentation.
Legacy bootstrap functionality is still available if you add the org.springframework.cloud:spring-cloud-starter-bootstrap
dependency to your project.
Upvotes: 22
Reputation: 29
Error message itself has suggestions / action towards the solution:
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.
Upvotes: 2
Reputation: 187
I was getting this issue while implementing spring-cloud-config
client.
I have added bootstrap.yml
to specify config server address.
Later on, added the below code in application.yml
itself which resolved the issue.
spring:
application:
name: user-service
config:
import: optional:configserver:http://localhost:9004
Upvotes: 7
Reputation: 816
I got past the error by removing dependency spring-cloud-starter-config
. If you keep it, then it will keep prompting. I think with newer Spring Boot we do not need the dependency.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
bootstrap.properties
:
spring.application.name=config-client-app
eureka.client.server-url.defaultZone=http://localhost:8761/eureka
spring.config.import=optional:configserver:
Spring version I'm working with:
<spring-cloud.version>2020.0.3</spring-cloud.version>
Upvotes: 0
Reputation: 1454
I'm using Spring Cloud Config Server on port 8888 on localhost, Spring version 2.5.4 and Java 16
My bootstrap.properties:
spring.application.name=hr-worker
# Server Config
spring.cloud.config.enabled=true
spring.cloud.config.uri= http://localhost:8888
To stop to get error, i've just put this configuration in my application.properties:
spring.config.import=optional:configserver:http://localhost:8888
Upvotes: 0
Reputation: 41
Adding this dependency resolved my issue too: spring-cloud-starter-bootstrap
Upvotes: 1