One of the most famous features of Spring Boot is packaging an entire application in the so-called "fat" JAR that "just runs". It really works and is sufficient in many cases. But if you don't believe in magic and/or are having problems deploying a fat JAR, then it's time for you to understand how this feature works.
And then it turns out that "just runs" is far from free: there are restrictions on loading classes, questions about launch speed, conflicts with built-in JDK utilities, differences in dev/test/prod modes, and sometimes the use of this feature is unnecessary at all.
We will dig into these and other fine points of the "fat" JAR in the talk. We'll look at its design and understand in which cases it's a good solution and when it's better to avoid using it (and what to choose instead). We'll also pay special attention to deployment in containers.
The talk is aimed to practicing engineers delivering Spring Boot applications to production.