Book Image

Spring 5.0 Projects

By : Nilang Patel
Book Image

Spring 5.0 Projects

By: Nilang Patel

Overview of this book

Spring makes it easy to create RESTful applications, merge with social services, communicate with modern databases, secure your system, and make your code modular and easy to test. With the arrival of Spring Boot, developers can really focus on the code and deliver great value, with minimal contour. This book will show you how to build various projects in Spring 5.0, using its features and third party tools. We'll start by creating a web application using Spring MVC, Spring Data, the World Bank API for some statistics on different countries, and MySQL database. Moving ahead, you'll build a RESTful web services application using Spring WebFlux framework. You'll be then taken through creating a Spring Boot-based simple blog management system, which uses Elasticsearch as the data store. Then, you'll use Spring Security with the LDAP libraries for authenticating users and create a central authentication and authorization server using OAuth 2 protocol. Further, you'll understand how to create Spring Boot-based monolithic application using JHipster. Toward the end, we'll create an online book store with microservice architecture using Spring Cloud and Net?ix OSS components, and a task management system using Spring and Kotlin. By the end of the book, you'll be able to create coherent and ?exible real-time web applications using Spring Framework.
Table of Contents (13 chapters)
Title Page
About Packt
Contributors
Preface
Index

Preface

Spring makes it simple to create RESTful applications, interact with social service, communicate with modern databases, secure your system, and make your code modular and easy to test. This book will show you how to build various projects in Spring 5.0, using its various features, as well as third-party tools.

Who this book is for

This book is for competent Spring developers who wish to understand how to develop complex yet flexible applications with Spring. You must have a good knowledge of Java programming and be familiar with the basics of Spring.

What this book covers

Chapter 1, Creating an Application to List World Countries with their GDP, is about kick-starting your Spring-based web application development. We will focus on creating a web application using Spring MVC, Spring Data, and the World Bank API for some statistics on different countries, and a MySQL database. The core data for the application will be from the sample world database that comes with MySQL. The UI for this application will be powered by Angular.js. We will follow the WAR model for application deployment and will deploy on the latest version of Tomcat.

Chapter 2, Building a Reactive Web Application, is about building a RESTful web services application purely using Spring's new WebFlux framework. Spring WebFlux is a new framework that helps create reactive applications in a functional way.

Chapter 3, Blogpress – A Simple Blog Management System, is about creating a simple Spring Boot-based blog management system that uses Elasticsearch as the data store. We will also implement user roles management, authentication, and authorization using Spring Security. 

Chapter 4, Building a Central Authentication Server, is about building an application that will act as an authentication and authorization server. We will make use of the OAuth2 protocol and LDAP to build a central application that supports authentication and authorization.

Chapter 5, Application to View Countries and Their GDP Using JHipster, revisits the application we developed in Chapter 1Creating an Application to List World Countries with their GDP, and we'll develop the same application using JHipster. JHipster helps with the development of Spring Boot and Angular.js production-ready applications, and we will explore the platform and learn about its features and functionality.

Chapter 6, Creating an Online Bookstore, is about creating an online store that sells books by developing a web application in a layered fashion.

Chapter 7, Task Management System Using Spring and Kotlin, looks at building a task management system using Spring Framework and Kotlin.

To get the most out of this book

A good understanding of Java, Git, and Spring Framework is necessary before reading this book. A deep knowledge of OOP is desired, although some key concepts are reviewed in the first two chapters.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packt.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packt.com.
  2. Select the SUPPORT tab.
  3. Click on Code Downloads & Errata.
  4. Enter the name of the book in the Search box and follow the onscreen instructions.

Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:

  • WinRAR/7-Zip for Windows
  • Zipeg/iZip/UnRarX for Mac
  • 7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/Spring 5.0 Projects. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. You can download it here: http://www.packtpub.com/sites/default/files/downloads/9781788390415_ColorImages.pdf.

Code in Action

Visit the following link to check out videos of the code being run: http://bit.ly/2ED57Ss

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "The preceding line has to be added between the <Host></Host> tags."

A block of code is set as follows:

<depedency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-security</artifactId>
</dependency>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

<depedency>
<groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Any command-line input or output is written as follows:

$ mvn package

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "Download STS, unzip it in your local folder, and open the .exe file to start the STS. Once started, create a new Spring Starter Project of the Spring Boot type with the following attributes."

Note

Warnings or important notes appear like this.

Note

Tips and tricks appear like this.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packt.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the Internet, we would be grateful if you would provide us with the location address or website name. Please contact us at [email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.