Learning Spring Boot 3.0

Third Edition

BIRMINGHAM—MUMBAI

Learning Spring Boot 3.0

Third Edition

Copyright © 2022 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author(s), nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Group Product Manager: Pavan Ramchandani

Publishing Product Manager: Bhavya Rao

Senior Editor: Mark D’Souza

Technical Editor: Simran Ali

Copy Editor: Safis Editing

Project Coordinator: Manthan Patel

Proofreader: Safis Editing

Indexer: Rekha Nair

Production Designer: Nilesh Mohite

Marketing Coordinator: Anamika Singh

First published: November 2014

Second Edition: November 2017

Third Edition: December 2022

Production reference: 2130123

Published by Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham

B3 2PB, UK.

ISBN 978-1-80323-330-7

www.packt.com

To my fans on YouTube, who have given me the opportunity to share my love for Spring Boot. To my children, who have put up with me spending hours filming in my studio space. And to my wife, who has supported me in word and action as I’ve attempted to build a community.

– Greg L. Turnquist

Forewords

Spring Boot has been such a success that it’s probably not wrong to describe it as “mainstream” in 2022. Practically every Java developer will know something about it, and many, maybe even the majority, will have used it, even if in anger. But in software engineering, there’s always something new to learn, and there are always new problems to solve – that’s what makes it so rewarding in the end. There’s always something new to invent, too, and having the skill and opportunity to create code is extremely rewarding intellectually and in other ways.

One of the goals of Spring Boot is shared by the author of this book, and that is to get your ideas down into code as quickly and efficiently as possible, so you can get it to the most special place: Production. I wish you a short and pleasant journey, or maybe a long series of short and pleasant journeys.

In this book, Greg has used his insider advantage to add Spring Boot knowledge to some old, well-seasoned favourite problems that you all will have experienced as Java developers. What better way to learn than to look at Spring Boot through the lens of tasks that we all have to solve nearly every day: creating HTTP endpoints, securing them, connecting to databases, writing tests? This book adds some new angles to these old chestnuts by applying some modern ideas and tools, so read it and you will learn about things such as hypermedia and OAuth, all from the most practical and pragmatic of standpoints. It also starts right at the very beginning, and assumes no prior knowledge of Spring, or even Java. Anyone with some basic technical or programming skills will be able to get to grips with how and why to use Spring Boot.

There is more to Spring Boot than just main methods, embedded containers, autoconfiguration, and management endpoints. The pure joy of getting started with a fully featured Spring application in a few lines of code cannot be understated, for instance. I invite you to dip into this book, break out an editor or an IDE, and crank up some applications for yourself.

Greg has been an important member of the Spring Boot team, despite having a day job doing other things in the Spring Engineering effort, and we can be grateful for that, as well as the effort he has lavished on this excellent book. He has always been an educator and an informer, as well as an engineer, and this shows very clearly in this book. When I read it, I can hear Greg’s voice and personality very clearly, and it is always calm but enthusiastic, with a touch of humour. Read it yourself and enjoy – coding with Spring is still fun after all these years!

Dave Syer

Sr. Staff Engineer and Co-Creator of Spring Boot

London, 2022

I’ve known Greg Turnquist for a number of years. After I joined Pivotal (and before I had officially started) I first met him in person at SpringOne2GX, the annual conference of all things Spring and more (anyone remember the heady days of Groovy and Grails?). We had some great, thought-provoking conversations there, and they’ve continued through the years since.

One of the first Spring Boot books I read was Greg’s first edition of Learning Spring Boot. I wish I had read it sooner! I found myself recommending it to numerous people, along with other books by trusted colleagues, as a valuable introduction and reference to various Boot-related topics.

As an author myself, I know all too well the exhilarating and excruciating task Greg faced when writing and updating this book. Every author has to balance all the things they want to share, all the topics they feel most important, with the constant constraints of time and volume. Greg deftly threads this needle, providing a good foundation and then quickly shifting to topics important to developers, using Spring Boot to field real applications. Data? Security? Configuration? Integration with JavaScript? It’s in there.

I loved working with Greg on the Spring team, and I continue to enjoy every conversation we have. There will always be an honored place on my (virtual) mantle for Greg’s books, and I hope that you make room on yours for them as well. Read this book and get to know Greg! Your Spring Boot apps will benefit from both.

Best to you in your Spring Boot journey,

Mark Heckler

Principle Cloud Advocate, Microsoft

@mkheck

Look, I know you’re probably reading this foreword hoping for some compelling testimonial about this book, along with some witticism and a fun anecdote about life. Why wouldn’t you? It’s a preface to a book. But I can’t in good conscience write that foreword for you; it smacks of absurdity. But, of course, this book is fantastic. So, I don’t want to linger on the obvious.

Let’s talk about Greg, the author of this chef-d’oeuvre. Greg’s been on the Spring team longer than I have been. He’s forgotten more than most people will ever know about the depths of Spring. He invests time in the big and the small. You can trust him to be your sherpa and guide you from beginner to Spring Boot-iful. I do.

Greg’s a friend. He and I get along because, in some crucial ways, we’re very much alike. I like odd little projects that, while not necessarily mainstream, sometimes solve acutely painful problems. I once gave a talk to three people. My presentation was so specific that, out of thousands of attendees at the show, only three could be bothered to attend. I’m willing to advocate for the faintest glimmer of a solution if I believe in it. Greg is too. He invests in the big and small.

We both love the JVM and Python. That shared affection brings us around to Spring Python. Long ago, Greg brought some of the brilliance of the Spring Framework to the Python ecosystem with his project Spring Python. Python’s ecosystem brims with alternatives for every use case. In this sea of choice, Spring Python stood out. It delivered on the lofty goals of the Spring Framework while remaining “Pythonic”, a quality that signals a library will feel idiomatic to a familiar Python programmer. It showed a deep commitment to, and familiarity with, two vastly divergent ecosystems. I love Greg because of Spring Python. It shows he’s willing to sit down, roll up his sleeves, expand his horizons, and write code until a problem is solved– no matter how big or small. That willingness to dive deep into a topic makes him a gifted writer and teacher, which is evident in his books, courses, blogs, and articles. His gift makes these printed pages something more than yet another book on software; they’re a tome worth your time.

This book covers the just-released Spring Boot 3.0, arguably the most critical release of Spring Boot (or any other Spring ecosystem project) since Spring Boot itself appeared publicly for the very first time in 2013. I know all of us on the Spring team, Greg included, worked harder and longer than ever to get this release out the door. Yet, against all that work, Greg managed to get this book in your hands in record time. He did that so we, dear readers, could get to production in record time. He did that so we would not have to invest in the big and the small.

Josh Long

Spring Developer Advocate, VMware, (and well-known Greg Turnquist fan)

@starbuxman

Contributors

About the author

Greg L. Turnquist is the lead developer for Spring Data JPA and Spring Web Services. He has contributed to Spring HATEOAS, Spring Data REST, Spring Security, the Spring Framework, and many other parts of the Spring portfolio. He has maintained the Spring Data team’s CI system for years with his script-fu. He has written multiple tomes on Spring Boot, including Packt’s best-selling title Learning Spring Boot 2.0 Second Edition as well as the very first Spring Boot book to ever hit the market. He even launched his own YouTube channel, Spring Boot Learning (http://bit.ly/3uSPLCz), the channel where you learn about Spring Boot and have fun doing it. Before joining the Spring team, Greg worked as a senior software engineer at Harris Corp. on multiple projects including its ambitious $1.5 billion telecom contract with the FAA to build a nationwide, always-on network. As a test-bitten script junky, Greg is no stranger to midnight failures. He has a master’s degree in computer engineering and lives in the United States with his wife and their gaggle of minions.

I want to thank the Spring team, who have encouraged me at every turn, Dan Vega, for giving me the inspiration to make YouTube content, and the team at Packt, who have worked tirelessly to help me publish this technical work.

About the reviewer

Harsh Mishra is a software engineer who enjoys learning new technologies for his own knowledge and experience, focusing on designing and developing enterprise solutions. He is a clean code and Agile fan. He has been developing code for financial businesses since 2014 and has been using Java as his primary programming language. He also has product experience in Spring, Microsoft, GCP, DevOps, and other enterprise technologies.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset