Book Image

Full Stack Development with Spring Boot and React - Third Edition

By : Juha Hinkula
Book Image

Full Stack Development with Spring Boot and React - Third Edition

By: Juha Hinkula

Overview of this book

Getting started with full stack development can be daunting. Even developers who are familiar with the best tools, such as Spring Boot and React, can struggle to nail the basics, let alone master the more advanced elements. If you’re one of these developers, this comprehensive guide covers everything you need! This updated edition of the Full Stack Development with Spring Boot 2 and React book will take you from novice to proficient in this expansive domain. Taking a practical approach, this book will first walk you through the latest Spring Boot features for creating a robust backend, covering everything from setting up the environment and dependency injection to security and testing. Once this has been covered, you’ll advance to React frontend programming. If you’ve ever wondered about custom Hooks, third-party components, and MUI, this book will demystify all that and much more. You’ll explore everything that goes into developing, testing, securing, and deploying your applications using all the latest tools from Spring Boot, React, and other cutting-edge technologies. By the end of this book, you'll not only have learned the theory of building modern full stack applications but also have developed valuable skills that add value in any setting.
Table of Contents (22 chapters)
1
Part 1: Backend Programming with Spring Boot
7
Part 2: Frontend Programming with React
12
Part 3: Full Stack Development

Using promises

The traditional way to handle an asynchronous operation is to use callback functions for the success or failure of the operation. One of these callback functions is called (success or failure), depending on the result of the call. The following example shows the idea of using a callback function:

function doAsyncCall(success,  failure)  {
  // Do some API call 
  if (SUCCEED)
    success(resp);
  else
    failure(err);
}
success(response) {
  // Do something with response
}
failure(error) {
  // Handle error
}
doAsyncCall(success, failure);

A promise is an object that represents the result of an asynchronous operation. The use of promises simplifies the code when you're executing asynchronous calls. Promises are non-blocking.

A promise can be in one of three states:

  • Pending: Initial state
  • Fulfilled: Successful operation
  • Rejected...