This Week in Spring – June 6th, 2023
Discription

Hi, Spring fans! Welcome to another installment of _This Week in Spring_! And what an insane week it’s been! Long story short, I’ve spent 10-12 hours a day over the last five days migrating a dozen differnet applications and services from one GKE cluster to another, taking the time to update things as much as possible. In the case of at least one Vue.js application, this meant some major reworking of the codebase. It’s also meant rewriting lots of Github Actions with the new best-practices and patterns, which I confess has been painful.

Once everything’s fully migrated (soon, I hope!), I think a next step will be to see what I can do to simplify things in a consistent way across all the services. This means:

* building a new Kubernetes CRD and controller to encapsulate the YAML I find myself repeating across all my services. It’s tedious and error-prone and could be boiled down to a few lines in one YAML file for 90% of my workloads!
* building a new Github Action that does a lot of the Kubernetes connectivity so I don’t have to copy-and-paste the same four error-prone actions across each Github Actions workflow.
* Moving everything to Gradle and packaging up things – like my version management and common required dependencies – in a shared plugin which in turn furnishes required plugins, dependencies, and delegates to Spring Boot 3.1 and the like. 3.1’s a great place to be for these applications already, it’d just be nice to know that when it comes time to move to 3.2, or whatever, I can make the change in one place and everywhere else benefits.
* As part of the work, I’ve decided I wanted to start eliminating some of the crufty, bespoke authentication mechanisms in my various web applications. I’ve stood up an instance of the Spring Authorization Server. (Hurray!) By the way, if you want to see _the_ easiest and coolest demo of how to get an OAuth client, an OAuth resource server, an OAuth Authorization Server, all from scratch on start.spring.io, do check [out this video that Steve Reisenberg]() and I put together recently! It’s insane how easy it is to get everything working, and the actual [production code]() I’m going to take to my production environment is only slightly more complex)

Anyway, all of that is temporarily on hold as I am in Dallas, Texas at the moment meeting some customers and enjoying the warm weather. But we do have a _ton_ of stuff to look at this week, and I’ve got a customer to visit, so let’s get this underway!

* [A Bootiful Podcast: Spring Boot team member Moritz Halbritter (@m_halbritter)]()
* [Spring Boot Properties Prefix Must Be in Canonical Form]()
* [Dimas Adriyanto Setyawan has a nice blog looking at the new Docker Compose support in Spring Boot 3.1]()
* Jetbrains [Getting Started with Spring Boot and Kotlin]() page has been nicely updated
* With a title like this, how could you _not_ read?? [How to use ChatGPT/OpenAI APIs from Oracle Backend for Spring Boot/Parse.]()
* [The Difference Between findById and getById in Spring Data]()
* I’ll [be speaking in Sydney, Australia ](). Come out and join me?
* I’ll be [speaking in Taipei](). Come out and join me?
* [Thomas Schuehly just released v0.5.4 of Spring ViewComponent]()
* I love this: a deep-ish [review of some of the various Spring `ApplicationEvent`s](Spring Boot’s Application Events): nice job, Truong Bui!
* Interesting: [how to locally test GCP Firestore and Spring]()Read More

Back to Main

Subscribe for the latest news: