The GA release of Spring Framework 5.0 has been closely followed by other projects within the Spring ecosystem. Among these, the Spring Data release train Kay reaches the general availability milestone. This is its first major revision in eight years.
The Spring Data Kay GA release introduces a baseline of Spring 5, Java 8 and JavaEE 7. It also adds general Java 9 compatibility and Kotlin support. It provides reactive data access for Cassandra, MongoDB, Redis and Couchbase as well.
While reactive will be likely to cause a lot of interest, Mark Paluch and Jens Schauder from the Spring team told InfoQ that they expect the improvements to the CRUDRepository API to be of wider impact, particularly in the enterprise.
This API brings a new naming scheme for methods, which will fix issues and ambiguities arising in some circumstances in previous versions of the framework, although adopting the new API will require changes to existing code.
Paluch also commented that the team had seen a high demand to adopt Kotlin language features (default arguments, primary constructors and nullability). This has resulted in adding support for null-safety and immutable data classes through Kotlin constructors.
Given the length of time since the last major release of Spring Data, there are many more enhancements which are detailed on the release page and on those of the various Spring Data sub-projects. Like all Spring Projects, Spring Data’s goal is to provide a consistent, Spring-based programming model for data access across database platforms, while at the same time retaining any special attributes of the underlying data store. Given the heterogeneous nature of database technologies, Spring Data itself is an umbrella project that incorporates many subprojects, each of which provides specific database access including MongoDB, Redis, Cassandra or the JPA.
Also arriving in the wake of Spring 5 is Spring For Apache Kafka 2.0. Like Spring Data Kay this release introduces a Spring 5 and Java 8 baseline, as well as support for transactions, Kafka streams, updated Apache Kafka client support and improved support for testing and error handling.