Updated April 7, 2023
Introduction to Spring Cloud Version
Spring Cloud is a module which provides tools for the developers to quickly build some common patterns like service discoveries, configuration management, control bus, global locks, etc in the distributed environment. It helps in Rapid Application Development using the Spring framework. Spring Cloud allows the developer to quickly develop the Spring application with the facility to include a cloud based framework that works well in the distributed environment. In order to use Spring Cloud in any Spring project, it is the foremost step to determine the version of Spring Cloud to use that would be compatible with the Spring boot.
Different Spring Cloud Versions
It is important for the developer to understand the Spring cloud version compatibility with the specific Spring boot in order to use it in the project.
1. Dalston
The changes that were introduced in this release of Spring Cloud are given below:
- Through composite pattern, Config server now supports multiple backends which allows various backends like git, vault, etc which were not supported before.
- General purpose context propagation has been added in this release.
- To Sleuth which allows the arbitrary attributes like http, messages to be passed through boundaries.
- Adding of logs and tags feature was added which works great with many frameworks.
- Now Spring Cloud Consul support features to deregister the zombie services.
- Various issues related to the json data were rectified.
- Some important changes in the documentation were made regarding the Config properties and endpoints.
2. Edgware
The notable changes in the Edgware version of Spring Cloud are given below:
- RestTemplateBuilder support was added in this release.
- Support was added for retry using ‘UserInfoRestTemplate’.
- The addition of a custom WireMock extension was introduced in this release.
- An interesting option was added to dump mapping to files.
- Kubernetes authentication method was added for the users in this release.
- New JDBC ‘ENvironmentRepository’ was added.
- Ability to configure the proxy host and ssh git port was added.
- Cookie support was added for Contract DSL.
- SpanTag port was fixed to 1.3.x
- In GenericResourceRepository, various invalid paths were cleaned.
- Basic support for RestDocs and XML was added in this release.
3. Finchley
The notable changes in the Finchley release of Spring Cloud are given below:
- New additions in the Spring Cloud in this release were Spring cloud portfolio and Spring Cloud Gateway.
- Builder support was added in this release.
- Early bean-initialization issues were fixed.
- AWS X-Ray support was added.
- Apache httpclient support was added in this release.
- Added the support of OpenTracing.
- For Git and Vault backends, ability to skip SSL validation was provided.
- Functionality of Retry has been simplified in this release.
- RestAssured support was added for the RestDocs.
- For the HTTP statuses, helper methods were added by the developers.
- In Feign configuration properties, support for encoder, decoder and contract was added.
- For Consul watches, @Scheduled is no longer in use from this release.
- PropertySourceLocator support was added which uses the AWS Parameter Store.
4. Greenwich
There were majorly 5 releases of the Spring Cloud Greenwich version. The last release of it was on 2020-05-15. This was the last release train of Spring Cloud supporting Spring Boot 2.1.x.
The major changes in this release are given below:
- Two new projects, i.e. Spring Cloud GCP and Spring Cloud Kubernetes were added which provided the integration with the Google Cloud Platform and Kubernetes respectively.
- Various timeouts and exceptions were handled at different places in the software.
- Certain configurations and Properties were hidden that were left exposed in the previous releases.
- Docs regarding the Config property were improved.
- Ribbon and eureka versions were updated.
- Ability to set max response on Http Header Size on http client was provided.
- Issue of CatchingRoutelocator was fixed
- Possibility to override the RouteLocator was added.
- Support for trusted certificates was added.
- In the documentation, more information was added for the SC Loadbalancer.
- Issue related to the usage of the deploy file in order to upload the zipped docs of the artifactory was fixed.
- Spring Cloud Load balancer config was simplified for the user.
5. Hoxton
There were many revisions of the Hoxton version of Spring Cloud released almost in a gap of 1 month. The latest release of Hoxton was on 2020-11-09. This is basically the bugfix release of Spring Cloud.
The major changes in this release are given below:
- This milestone was built with the release of Spring Boot 2.2.5.
- Issues related to the Performance with KeyStoreTestEncryptorLocator were fixed.
- In StubRunner, support was added for LoadBalancer of Spring Cloud.
- In Spring Cloud LoadBalancer, support was added for instance health checks.
- The writable endpoints like ‘env’ have been disabled by default. In order to re-enable it, it has to be set ‘true’ manually.
- Developers have added the support for customizing and creating the circuit breakers in advance.
- Various enhancements related to the ‘RetryFilter’ were added by the developers.
- Modules related to Spring Cloud Config, Contract, Vault, Commons, Stream, Gateway and many more were updated as a part of Hoxton release.
6. Ilford (2020.0)
The following major changes that were introduced in this version of Spring cloud are given below:
- Functionality issue of tags-as-data was removed by the Spring Consul.
- For spring-cloud-bus, spring-cloud-stream is an optional dependency. If the programmer is using the binder other than kafka and rabbitmq, it has to include spring-cloud-starter-bus-stream in the project.
- Instead of legacy annotation- driven models, implementation of spring-cloud-bus is migrated to spring-cloud-function.
- Spring Cloud GCP is no longer a part of the release train of Spring Cloud.
- Various Actuator endpoints have been updated like bus-refresh, bus-env, service-registry, etc.
- Spring Cloud Config Client Health Indicator property is now changed from health.config.enabled= false to management.health.config.enable= false.
- In the lower versions, Bootstrap which was provided by spring-cloud-commons is no longer enabled by default.
- Rather than tags as metadata, support was added for Consul Service Metadata.
Conclusion
Above description clearly shows the various versions of Spring Cloud. Various Spring Cloud versions and multiple releases in a single version are releasing providing new features and introducing major changes to make it better. Though the previous versions like Dalston, Edgware, Finchley are no longer supported by Spring Cloud. For the programmer, it is important to understand the version history of Spring Cloud once before using it in a Spring project to have a better understanding.
Recommended Articles
This is a guide to Spring Cloud Version. Here we discuss the introduction and different spring cloud versions respectively. You may also have a look at the following articles to learn more –