Hi Spring fans! Welcome to another installment of This Month in Spring! This last months been absolutely nuts! Just as parts of Europe are winding down for summer holidays much of the rest of the world starts getting crazy! Since we last spoke I've been busy bringing Cloud Native Java anywhere and everywhere. I've been to NYC, US; Amsterdam, NL; London, UK; Paris, FR; Krakow, PL; São Paulo, BR, Rio de Janeiro, BR and Singapore, talking to developers hither-and-thou about all things Pivotal, Spring and Cloud Native Java. Summer, it turns out, is a great time to talk about Spring! (Related: Can you believe we're past mid-year already??)
This month also saw two new translations of O'Reilly's Cloud Native Java debut. Cloud Native Java, a book that I wrote with Kenny Bastani, is all about how to build applications that survive and thrive in the cloud with Spring Boot, Spring Cloud and Cloud Foundry. You can now get the book in Korean and Chinese. Now that's reach!
This last month has been a particularly important one for me as it saw the GA release of Spring Cloud Finchley, the first edition to support reactive programming end-to-end. This marks the first time in more than a year that your humble correspondent's been able to go on stage and show the latest and greatest without worrying I'm going to get a SNAPSHOT build that will tank, live! I only get a few weeks of this sort of tranquility per year!
It's the end of one journey for the Spring team and the beginning of many others! I wrote about that reactive milestone in the Road to Reactive Spring Cloud.
I also wrapped up season 4 of Spring Tips, with plenty of new content to come in season 5. Miss an episode or just want to catch up on older seasons? Check out this recap post with links to every Spring Tips installment. As always, I'm keen on any suggestions for the latest and greatest tips. And don't worry, we'll be back! :)
We've got approximately 820,000,042 things to cover from the last month so without further ado, let's get to it!
- Spring Data Geode / Gemfire lead John Blum has just announced the Spring Boot integration for Apache Geode and Pivotal Gemfire 1.0.0.M1. It supports look-aside caching using Spring’s Cache Abstraction, system of record (SOR) using Spring Data Repositories and Spring transaction management, distributed compute using function implementation & executions, event stream processing (ESP) using continuous query, domain object versioning/serialization using PDX, Security, authentication / authorization, and TLS using SSL.
- Not one to rest on his laurels, Spring Data Geode/Gemfire lead John Blum has announced Spring Session for Apache Geode/Pivotal Gemfire 2.0.3.RELEASE
- Check out this minimal Spring Fu webapp that now compiles to a native image successfully with Graal 1.0.0.RC2 and Kotlin 1.2.60 (will also work with 1.2.51), and Netty! Startup time is < 3 ms with Graal on my admittedly fairly quick Linux/Dell Precision 5520 (to be compared with 900 ms with Java 10). The self-sufficient executable size is 50 MB but there's every reason to think we can reduce it.
- Good news everybody! The Vaadin guide on Spring.io/guides has been updated to Vaadin 10 thanks to Vaadin's very own Matti Tahvonen
- This is super cool! Project Blockhead is an open service broker compliant implementation that supports Ethereum, the result of a hackathon, too!
- Stephane Nicoll and Brian Clozel's talk, Spring Boot 2.0 Web Applications, is now available online. Here is the video and here is the code.
- I did a talk, Bootiful Kotlin, from Kotlin Conf 2017, that is now available online. It's a little outdated but it's a roving tour of all sorts of integrations, classic and cutting edge, in the Spring and Kotlin universes.
- I really like this post from Pivotal's own Richard Seroter on four Spring Cloud projects that you should definitely check out
- I love Spring Test lead and JUnit lead Sam Brannen's explanation on the differences in autowiring in a regular Spring component versus its use in a JUnit test class.
- German consultancy and software house Codecentric, who've appeared in This Week in Spring a number of times, have announced their hiterto German-languge only Softwerker magazine is now available in English. They often have articles on Spring so I'd bookmark this. And if you read German, check out the back-issues!
- Check out Spring Data Gremlin, Microsoft's integration for any database that supports the Gremlin query language, of which CosmosDB is but one particularly interesting option
- This is an oldie-but-a-goodie from Michael Simons on how to configure a Spring Boot application to use JUnit 5
- I like this post on using the functional and reactive Spring support in Spring Framework 5 and Spring Boot 2, as a microframework of sorts, to turn the World Factbook API into a REST API
- Jenn Strater's epic talk on documenting RESTful APIs with Spring REST Docs on InfoQ
- Check out this video tutorial series on using BOSH to manage infrastructure.
- I love this blog on optionally injecting dependencies into your Spring code. Did you know you can inject dependencies that may be present (or not) using Java 8's
Optional<T>, JSR 330's
Provider<T>and Spring's longest supported
- This is a super cool tweet from Noopur Gupta demonstrating running tests on specific platforms using new JUnit 5 annotations
- I like this example demonstrating Spring Webflux and the
- Codecentric's Spring Boot Admin 2.0.1 released! The new release now includes Spring Cloud
DiscoveryClientsupport, now that Spring Cloud Finchley is GA. Hurray and congrats to the Codecentric team!
- The next iteration of Spring Boot, Spring Boot 2.1, is going to be awesome. It includes faster startup, immutable and scannable
@ConfigurationProperties, Netty support for HTTP/2, functional bean registration support, and more!
- Check out Spencer Gibb's Spring I/O 2018 talk, Introducing Spring Cloud Gateway
- JHipster v5.0.0 has been released, the day before Jhipster Conf, and it features support for Angular 6, React, Webpack 4, Spring Boot 2 and more
- Is Cloud Foundry still relevant in the age of containers and serverless? Yes. In fact, it's even more relevant. Check out this amazing writeup
- Spring Cloud Finchley.RELEASE is available. This is the big one! It's finally here! The final piece of the reactive puzzle. This release culminates an almost year long journey from Spring Framework 5 (released in September of 2017) which introduced the world of Spring to reactive programming. Then we saw Spring Data Kay, Spring Cloud Stream, Spring Security 5, Spring Boot 2 (just a few months ago) and now, finally, Spring Cloud Finchley all embrace reactive programming wherever it makes sense. Spring Framework 5 is the new baseline and with it comes a new Java baseline requirement; Spring Cloud Finchley assumes Java 8 or better. This release is not just a refresh, though! Furthest thing from it! This release also includes two (effectively) brand new projects called Spring Cloud Function and Spring Cloud Gateway. Spring Cloud Function supports serverless programming and Spring Cloud Gateway is an API Gateway.
- Spring IO Platform lead Andy Wilkinson has just announced Spring IO Platform Cairo SR2
- Not one to rest on his laurels, Andy Wilkinson also just announced Spring IO Platform Brussels SR11
- Brian Clozel published the following Spring Framework-related CVEs!
- Brian Clozel has just announced Spring Boot 2.0.3
- Stéphane Nicoll has just announced Spring Boot 1.5.14
- Simon Baslé has just announced the Reactor Bismuth-SR10 release.
- Spring Session Apple SR3 Released
- Mark Paluch announced Spring Data Ingest SR13 and Spring Data Key SR8
- Spring Cloud Stream ninja Soby Chacko has some nice examples demonstrating partitioning
- Spring Cloud Stream Ditmars.SR4 Released
- Spring Security 5.0.6 and 4.2.7 Released
- Spring Cloud Pipelines 1.0.0.M8 Released
- Spring Frameworks 5.0.7 and 4.3.18 are available now
- In this Spring Tips installment, we looked at the brand new Spring Fu project. Spring Fu is an experiment where we investigate options for a Kotlin-first and functional configuration-centric approach to microframeworks. It is also really fast. Try it out!
- Spring community legend Michael Simons has a nice post on how to use JUnit 5 with Spring Boot for unit and integration tests
- This is a wonderful post by Martin Deinum on the structure of the
ApplicationContext, and how the various kinds of "configuration" are supported in Spring. This is an absolutely golden post and I'm so happy to see someone talking about these often overlooked details.
- This post by Okta Developer Advocate Matt Raible details how to secure a Spring Boot and Angular PWA application as a single artifact
- Spring Data Geode/Gemfire lead John Blum has a fantastic example of using Spring Data Geode/Gemfire to build a sample application. Check it out
- Check out the new release of the Chaos Monkey for Spring Boot. This release supports Spring Boot 2.x, improved documentation and improved JMX Actuator support.
- Check out this new
cfCLI plugin to plugin to enable pushing artifacts to cloud foundry by maven coordinates
- Tricks with 'var' and anonymous classes (that you should never use at work) - blog@CodeFX
- Did you miss Spring I/O 2018 in Barcelona, Spain? (If so, why?) Check out this recap post
- The Java Revisited blog has a nice post on why every developer should use Spring to build REST APIs
- I really liked this post on user impersonation with Spring Security
- Our very own Toshiaki Maki put together a really cool demo that Spring Boot 2 and iText (OpenPDF) and
AbstractPdfStamperViewto create a
- Hi Spring fans! In this installment of Spring Tips we look at the Java Persistence API
- Don't miss this webinar on MongoDB by Spring Data's Christoph Strobl and Mat Keep
- Spring Fu is here and it's awesome! Just check out this example application of the new Kotlin-first microframework for Spring developers. Spring Fu is explicit, not implicit. It's functional, it's fast, it's Spring Fu.
- Don't miss the upcoming Pivotal Paris event with many of the Spring team's local engineers
- Dr. Mark Pollack has just announced Spring Cloud Data Flow 1.5.1
- Dr. Mark Pollack, not one to rest on his laurels, just announced Spring Cloud Skipper 1.0.5
- Check out this Spring I/O 2018 talk Securing Spring Applications with Spring Cloud Vault Jan Dittberner
- Check out this tutorial on how to use jQAssistant and Spring Boot and Maven
- More than half (61 percent) of all CloudFoundry users are large enterprises which generate over $1 billion in annual revenue. See how CCloudFoundry scales in the enterprise. Download the full report!
- I had a great time talking all things Cloud Native, Singapore/Malaysian/Indonesian food in this podcast recorded at Voxxed Singapore with the cloud's very own storyteller, Michael Coté
- Pivotal advocate Mark Heckler has a nice post on running multiple Eureka instances on the same machine
- Spring Data engineer Mark Paluch shared a tantalizing picture of initial integration for the Lettuce Redis driver and Zipkin
- Alexandru Ionita did a nice job chronicling the migration from Spring Boot 1.x to 2.x.
- Check out the video to Johannes Edmeier's Spring I/O 2018 talk, "Monitoring Spring Boot Applications with Spring Boot Admin."
- Check out Arjen Poutsma's SpringOne Platform 2017 talk on the functional reactive web endpoints in Spring Framework 5
- Check out this epic Domain Driven Design example by Jakub Pilimon which now has new Spring Cloud Pipelines support
- the Chaos Monkey for Spring Boot now works with Russ Miles' Chaos Toolkit
- Chaos Toolkit LOVES Chaos Monkey for Spring Boot – Chaos Toolkit – Medium
- Microsoft Azure have even better support for deploying Spring Boot applications
- Pivotal Cloud Foundry now supports Minio, a highly available S3-like HA enterprise grade object storage server for developers.
- Spring Cloud Finchley GA is scheduled for June 15
- In Part 4 of "Should that be a Microservice?" Nate Schutta talks Independent Scalability and why it's important
- Spring Batch ninja Mahmoud Ben Hassine just announced Spring Batch 4.1.0.M1 which includes, among other thing, simplified testing and easier remote chunking. Get the bits now!
- In this Spring Tips installment we looked at JDBC, which is much more than just the venerable
JdbcTemplate! In this post we look at the
JdbcTemplate, various SQL command objects,
SimpleFlatMapper, and so much more. Check it out!
- Spring Cloud team member Ryan Baxter has just announced that Spring Cloud Finchley.RC2 was released!
- Join Madhura Bhave and Stephane Maldini on June 20th for this San Francisco JUG meetup!
- This is kind of interesting! It's a rules-platform that targets Spring Boot, Spring Cloud and other frameworks
- The latest release of jQAssistant now supports quality control rules for Spring and Spring Boot-based applications with the inclusion of the Spring plugin.
- The Spring I/O team (behind the epic Spring I/O conference in Barcelona, Spain, are now publishing their talks and you should follow that account to get the latest videos
- I really like this post by Spring creator Rod Johnson that describes the spirit of Spring and speaks to the recent acquisition of Github by Microsoft
- Check out the Vedran Pavic's Spring I/O 2018 talk on Spring Session](https://www.youtube.com/watch?v=sJcVaOERo6M&feature=youtu.be)
- Check out Spring Data Geode lead John Blum's SpringOne Platform 2017 talk
- Spring Cloud Sleuth just accepted its 1000th pull-request! This project just might have legs :-)
- In London? You should be at the SpringOne Tour event on 21-22 June in London! Learn about all things Cloud Native and Spring Boot
- Apache Kafka 2.0 just had a feature-freeze! Congrats to the Apache Kafka team!
- Redis Labs liked my Spring Tips video introducing Spring's vast support for Redis, and you might too!
- Bartosz Jedrzejewski has a great post on building reacitve applications with Spring WebFlux
- This is super cool! The IntelliJ IDEA support now includes the ability to group related confguration properties in
application.properties. Nice work to Yann Cebron and the team
- Having issues with Java 10, Lombok and Spring Boot? You might want to look at this thread
- I love this blog on test driven documentation with Spring REST Docs
- Get your early bird tickets to the RabbitMQ conference!
- Hurray! Pivotal Web Services now supports Docker images! Get it while it's hot!
- I like this post, the fourth in a series, that looks at the canonical "REST in Practice" example, Restbucks, and applies Clean Architecture.
- You should check out the slides from Spring Boot team legend Madhura Bhave's Spring I/O 2018 talk on "What's New in Spring Boot 2.0".
- Check out this mega thread by Redis project lead Salvatore Sanfilippo on the latest and greatest in Redis
- This is exciting! The next version of Spring Boot, 2.1, now includes the Spring Integration graph endpoint.
- Christiaan Roeleveld has just announced his new BOSH video series and it looks really good! BOSH is the driftless package manager distributed systems. It manages the lifecycle of infrastructure and surfaces a portable API that works, agnostic of the underlying IaaS.
- There is now a Swift-language Cloud Foundry binding. Cool!
About the Author
Josh Long is a Spring Developer Advocate at Pivotal. Josh is a Java Champion, author of five books (including O'Reilly's upcoming "Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry") and three best-selling video trainings (including "Building Microservices with Spring Boot Livelessons" w/ Phil Webb), and an open-source contributor (Spring Boot, Spring Integration, Spring Cloud, Activiti and Vaadin).Follow on Twitter More Content by Josh Long