8. Embedding the Config Server
The Config Server runs best as a standalone application, but if you need to you can embed it in another application. Just use the @EnableConfigServer
annotation. An optional property that can be useful in this case is spring.cloud.config.server.bootstrap
which is a flag to indicate that the server should configure itself from its own remote repository. The flag is off by default because it can delay startup, but when embedded in another application it makes sense to initialize the same way as any other application.
It should be obvious, but remember that if you use the bootstrap flag the config server will need to have its name and repository URI configured in
bootstrap.yml
.
To change the location of the server endpoints you can (optionally) set spring.cloud.config.server.prefix
, e.g. "/config", to serve the resources under a prefix. The prefix should start but not end with a "/". It is applied to the @RequestMappings
in the Config Server (i.e. underneath the Spring Boot prefixes server.servletPath
and server.contextPath
).
If you want to read the configuration for an application directly from the backend repository (instead of from the config server) that’s basically an embedded config server with no endpoints. You can switch off the endpoints entirely if you don’t use the @EnableConfigServer
annotation (just set spring.cloud.config.server.bootstrap=true
).