List of videos

Spring Boot & Kotlin: Pain or Gain? by Urs Peter @ Spring I/O 2024
Spring I/O 2024 - 30-31 May, Barcelona Slides: https://2024.springio.net/slides/spring-boot-and-kotlin-pain-or-gain-springio24.pdf Spring Boot has been the No. 1 framework for Java developers ever since. With its first-class support for Kotlin, a new frontier of possibilities opens up. Can Kotlin propel Spring Boot to new heights of efficiency and simplicity beyond what Java offers? Join me on an enlightening journey as we explore the potential advantages and pitfalls of integrating Kotlin into the Spring Boot ecosystem. We’ll begin by dissecting Spring Boot’s support for Kotlin features such as extensions, data classes, nullability, and more. Can they live up to their promise of improved code safety, conciseness, and readability compared to their Java counterparts? In the second part, we will venture into more advanced territory by investigating how reactive Spring Boot Webflux - highly efficient yet notorious for its complexity and steep learning curve - might be simplified using Coroutines, Kotlin’s built-in asynchronous language feature. Are the potential benefits worth the hassle of learning Coroutines? And yes, we’ll take a look at the role Virtual Threads can play in that regard! Finally, we’ll dive into the practical realm, transforming a Spring Boot application written in Java to Kotlin on the spot using live coding to explore tooling support and possible conversion strategies, accompanied by intriguing stories from real-world use cases. At the end of the journey, you have gained a nuanced understanding of the benefits and drawbacks Spring Boot offers when used with Kotlin compared to Java. Will the pain of adoption be worth the potential gain? Let’s find out together!
Watch
Debug your native Spring by Dmitry Chuyko @ Spring I/O 2024
Spring I/O 2024 - 30-31 May, Barcelona Slides: https://2024.springio.net/slides/debug-your-native-spring-springio24.pdf GraalVM Native Image can be used to turn your Spring Boot 3 service into a standalone platform executable. Such executables provide valuable performance benefits in production, and the process of creating them is now supported as a standard procedure by major application frameworks. Nevertheless, there are several quirks. Some of them appear at build time (like the build time itself). Some appear at run time. Take debugging, for example. Regular JVM debuggers work using the JDWP protocol. However, native programs require native platform debuggers, and certain support should be added to Native Image. BellSoft recently implemented such debugging support for macOS, so we’ll analyze how it works with different operating systems and tools.
Watch
Why Spring Matters to Jakarta EE - and Vice Versa by Ivar Grimstad @ Spring I/O 2024
Spring I/O 2024 - 30-31 May, Barcelona Slides: https://speakerdeck.com/ivargrimstad/why-spring-matters-to-jakarta-ee-and-vice-versa-eba1b242-2d02-4021-8741-7feaa42beff1 Jakarta EE 9 changed its package namespace from javax.* to jakarta.*. This may sound like a trivial change that mostly affects Jakarta EE. So, why should Spring developers care? As it turned out, the namespace changes rippled throughout the entire Java ecosystem and Spring was no exception since it incorporates and builds on a lot of the Jakarta EE APIs and technologies. This means that it is a great advantage for a Spring developer to be aware of what is going on with the Jakarta EE specifications. Looking at it from the other way around, Jakarta EE benefits a lot from looking at what Spring Framework does. The Jakarta EE specifications can pick up and standardize technologies and practices that have been made industry standard by Spring Framework. Jakarta Data is an example of this. Come to this session to learn why Spring matters to Jakarta EE as well as how Jakarta EE matters to Spring!
Watch
OpenAPI 3 and Spring-Boot 3 - What's new? by Badr Nass Lahsen @ Spring I/O 2024
Spring I/O 2024 - 30-31 May, Barcelona Slides: https://speakerdeck.com/bnasslahsen/openapi-3-dot-1-and-spring-boot-3-whats-new Repo: https://github.com/springdoc/springdoc-openapi-demos APIs play a central role in the evolution of business IT. Adopting an industrial approach is crucial. In this discussion, we will extensively explore springdoc-openapi. With over 25 million monthly downloads, springdoc-openapi is a significant player in the OpenAPI landscape for spring applications. We will delve into how this project can expedite the adoption of APIs. During this talk, we will deep dive into springdoc-openapi main functionalities: - Introduction to OpenAPI 3 - What is the purpose of springdoc-openapi? - Integration with spring-web and spring-webflux - GraalVM native images support - Integration with Kotlin - Integration with actuator - Reuse Javadoc in REST APIs descritpion - Integration with spring HATEOAS and spring Data REST - Integration with spring-security and OAuth 2.0 - Example with spring–authorization-server - Multiple OpenAPI groups support - Integration with spring-cloud-function-web - Integration with spring-cloud-gateway in a microservices architecture - Integration with Kotlin / Groovy - Generation of the OpenAPI 3 documentation with gradle/maven
Watch
Hitting the “refresh” button on your Spring web application by Stéphane Nicoll / Brian Clozel
Spring I/O 2024 - 30-31 May, Barcelona Repo: https://github.com/bclozel/ops-status/ If you’re maintaining an existing web application, upgrading to the latest Spring version is not just about maintenance: it’s also an opportunity to hit that “refresh” button on your web stack and bring meaningful improvements to your developer experience and new value to your users. With the latest Spring Boot 3.2 version, the Spring team brings new possibilities to keep your app relevant and your development team happy, empowering you to carefully evolve your application: Improve the runtime efficiency with Virtual Threads Use a modern HTTP client API without learning reactive with the new RestClient Leverage metrics and traces during production incidents Manage and rotate TLS certificates with bundles and reloading Connect to external systems with Docker compose and Testcontainers Get startup time improvements with AppCDS or Checkpoint Restore
Watch
Empowering Developers: Unveiling the Backstage Internal Developer Portal for Java Development
Spring I/O 2024 - 30-31 May, Barcelona Speaker: Alex Soto Slides: https://docs.google.com/presentation/d/1iCUCJhYTS2WFBgF3mGKbZMzx0r6lJhWx1ZE5OodyaXw/edit?usp=sharing Backstage is a powerful and open-source developer portal framework developed, offering a centralized platform for developers to access a wealth of tools, services, and knowledge, streamlining development workflows and enhancing productivity. Improve developer’s performance by creating golden paths with pre-architected stack to building and deploying a particular piece of software. By attending this session, you will gain insights into creating a developer-centric environment through the Backstage Internal Developer Portal while harnessing the capabilities of Java. Whether you are a developer, DevOps engineer, or a tech leader, this session promises to equip you with the knowledge and tools necessary to unlock the full potential of your development team.
Watch
Dapr and Spring Boot - Solving the Challenges of Distributed Systems by M. Salatino / T. Vitale
Spring I/O 2024 - 30-31 May, Barcelona Speakers: Mauricio Salatino / Thomas Vitale Slides & Repo: https://www.salaboy.com/2024/06/03/spring-i-o-dapr-and-spring-boot/ Imagine you are tasked to build the most straightforward application in a distributed system. How will your application consume external services? Which strategy will you use to ensure resilient interactions with other applications in the system? Will data consistency be guaranteed even when transactions cross application boundaries? Are you making your developer experience worse by dealing with all the complexity? We’ve all been there. This session will demonstrate the combined power of Dapr and Spring Boot for handling the most common distributed application challenges. Dapr is an open-source, cloud-native project designed to decouple application concerns from the underlying infrastructure through convenient APIs, enabling developers to consume several capabilities without extra cognitive load. Through live coding and hands-on demonstrations, Thomas and Mauricio will show how Dapr integrates with Spring Boot and helps you focus on writing the business logic rather than creating new solutions for recurring cloud-native patterns. Developer experience will be paramount. It’s a promise: no YAML and no Kubernetes will be needed to develop your applications! Here’s the catch: once you’re done, your applications will run across different environments and configurations (such as Kubernetes or a cloud platform). They will integrate with other services in the system without any code change. Will we reach the goal? Join us and find out!
Watch
Spring Security Architecture Principles by Daniel Garnier-Moiroux @ Spring I/O 2024
Spring I/O 2024 - Barcelona, 30-31 May Slides: https://2024.springio.net/slides/spring-security-architecture-principles-springio24.pdf Repo: https://github.com/Kehrlann/spring-security-the-good-parts When you need to secure your application, you use Spring Security. It’s the de-facto standard, it’s robust, extensible, and brings sensible defaults to your application. But newcomers can feel lost as soon as they step out of the “Getting Started” guides and need to fine-tune the configuration to their specific use-cases. Developers can find themselves frantically copy-pasting from Stack Overflow until it kinda-sorta works. Spring Security only uses a handful of core building blocks, and they are present everywhere in the library. Knowing what those are, how they are meant to be used, and how to effectively leverage them will give you the keys you need to implement all your custom needs. This session aims to provide a useful method for understanding Spring Security’s architecture, and how to customize it. Through some theory (diagrams!) and practice (live coding!), you will get familiar with the general architecture, foundational patterns and common abstractions. No more foraging StackOverflow in despair!
Watch
This Ain't Your Parents' Java by Venkat Subramaniam @ Spring I/O 2024
Spring I/O 2024 - 30-31 May, Barcelona Java was once a language that dragged along at snail’s pace. Thankfully, that’s no longer the case. In the recent years the pace of development has accelerated, both in language features and in the JDK improvements. Come along to dive into some of the recent changes of Java that are both fun and powerful to use, to learn how you can benefit from these, and we’ll also discuss where the language is heading in the near future.
Watch