Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Free Learning
Arrow right icon
Spring Boot 2.0 Projects
Spring Boot 2.0 Projects

Spring Boot 2.0 Projects: Build production-grade reactive applications and microservices with Spring Boot

Arrow left icon
Profile Icon Sadakath
Arrow right icon
Free Trial
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (2 Ratings)
Paperback Jul 2018 336 pages 1st Edition
eBook
NZ$14.99 NZ$64.99
Paperback
NZ$80.99
Subscription
Free Trial
Arrow left icon
Profile Icon Sadakath
Arrow right icon
Free Trial
Full star icon Full star icon Full star icon Full star icon Empty star icon 4 (2 Ratings)
Paperback Jul 2018 336 pages 1st Edition
eBook
NZ$14.99 NZ$64.99
Paperback
NZ$80.99
Subscription
Free Trial
eBook
NZ$14.99 NZ$64.99
Paperback
NZ$80.99
Subscription
Free Trial

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Spring Boot 2.0 Projects

Building a Basic Web Application

This chapter will help readers get started developing web applications using Spring Boot 2.0. It will enable experts as well as beginners with Spring Boot web application development to understand the concepts behind a web application. It will explain these concepts by walking the reader through the process of developing a web application that enables the submitting of comments to a scrum retrospective meeting. This web application will use an embedded database for persistence, Spring Data JPA for a model, Spring Thymeleaf for a view, and Spring Web MVC for controllers.

The following topics will be covered in this chapter:

  • Using Spring Data JPA for persistence
  • Using Thymeleaf for view
  • Using Spring Web MVC with servlet 3.x for controller
  • Using Spring Security for authentication and authorization
  • Demonstrating Retro Board
...

Technical requirements

In order to implement a web application using Spring Boot, the following build tools need to be downloaded and installed:

The source code for this chapter can be found at https://github.com/PacktPublishing/Spring-Boot-2.0-Projects-Fundamentals-of-Spring-Boot-2.0, under the Chapter02 directory.

Getting started

In this section, readers will get an overview of the web application being developed. The requirements, design, and implementation details will be discussed in brief.

Web application architecture

A web application is exposed to multiple concurrent users over a public or private network as opposed to a standalone application. Let's get started developing a basic web application that uses the well known Model-view-controller (MVC) pattern to build a three-tier application. The MVC pattern is known for its separation of concerns by decoupling presentation logic (what the user sees in a browser), routing and business logic (what the application needs to accomplish), and persistence (where the data is finally...

Using Spring Data JPA for persistence

In this section, readers will learn what JPA is, as well as how Spring Data JPA helps simplify the development of applications with database persistence.

Understanding the Java Persistence API (JPA)

JPA provides object/relation mapping capabilities to enable mapping between relational database tables and Java objects in order to ease persistence in Java applications. JPA consists of the following features:

  • A query language to enable querying from relational database tables in order to retrieve Java objects
  • A JPA Criteria API, which can be used to generate queries dynamically
  • A set of metadata defined with XML Java annotations in order to successfully map relational database table columns...

Using Spring Thymeleaf for the view

In this section, we will explain in detail what a template engine is, and how to use Spring Thymeleaf to implement the view presentation.

Understanding template engines

Standard Java Enterprise Edition (Java EE) applications used JSPs to generate presentation views for the end user. JSP is a mature technology that enables users to use embedded Java code as well as Java Server Tag Library (JSTL) elements, which will, in turn, execute Java code to generate a presentation view. All JSPs are eventually compiled as a servlet.

But mixing this Java code with presentation-specific code (HTML, CSS, and many more) is cumbersome and makes separation of concern difficult. Furthermore, presentation views...

Using Spring Web MVC with servlet 3.x for the controller

Controllers are the integration point between the model and view in the MVC paradigm. They act like glue that binds together everything while taking care of business logic execution and routing. The following Maven starter dependency needs to be added to enable Spring Web MVC:

<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

The preceding dependency will import servlet, Spring, and Tomcat dependencies to enable successfully writing servlet-based web applications using Spring.

Implementation of Controllers annotations

...

Using Spring Security for authentication and authorization

This web application has used Spring Security to authenticate users and to authorize them to submit comments. The Maven Spring Security starter needs to be specified as follows to enable Spring Security in the web application:

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

The following is the Spring Security configuration:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private UserService userDetailService;

@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/h2-console/**");
}

@Override
protected void...

Demonstrating the Retro Board

When everything is put together, build and run the Retro Board, which we will be able to access using the http://<host>:<port> URL.

There are several ways to run a Spring Boot application, some of which are:

  • Running the Spring Boot application main class using an IDE
  • Building a JAR or WAR file using the following Maven command and then running:
$ mvn clean install
$ java -jar target/<package-name>.[jar|war]
  • Running using the Spring Boot Maven plugin:
$ mvn clean spring-boot:run

After running, the Retro Board web application will launch the login screen as follows:

This login screen is the default login screen for form logins in Spring Security. A username/password combination created in SecurityConfig can be used to log in to the system. After successful login, the user will be routed to the comments page, which is as follows...

Summary

Congratulations on completing this chapter, where the skills and knowledge required to build a basic web application were discussed in detail. This chapter started off by explaining what a web application is and how a web application can benefit from MVC patterns in terms of both development and maintenance. It talked about the requirements of a web application being developed and used a UML use case diagram to explain the requirement visually.

This chapter also explained how to write the domain model of an application based on the requirements, how to write data repositories for it, how to test those for their correct functioning, and so on. It also discussed how to encapsulate business logic inside services and test them effectively to make sure everything works correctly.

Subsequently, the chapter talked about how to write presentation views to create and display comments...

Questions

Please answer the following questions to see whether you have successfully mastered this chapter:

  1. What is a web application?
  2. What is an MVC pattern?
  3. What is a relational database?
  4. What is JPA?
  5. How is the @Entity annotation used in JPA?
  6. What is a template engine?
  7. What is Spring Security used for?

Further reading

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Run production-grade-based applications using the Spring WebFlux framework
  • Learn to develop high-performance asynchronous applications with Spring Boot
  • Create robust microservice-based applications with Kotlin using Spring Boot

Description

Spring Boot is a lightweight framework that provides a set of tools to create production-grade applications and services. Spring Boot 2.0 Projects is a comprehensive project-based guide for those who are new to Spring, that will get you up to speed with building real-world projects. Complete with clear step-by-step instructions, these easy-to-follow tutorials demonstrate best practices and key insights into building efficient applications with Spring Boot. The book starts off by teaching you how to develop a web application using Spring Boot, followed by giving you an understanding of creating a Spring Boot-based simple blog management system that uses Elasticsearch as the data store. Next, you’ll build a RESTful web services application using Kotlin and the Spring WebFlux framework - a new framework that enables you to create reactive applications in a functional way. Toward the last few chapters, you will build a taxi-hailing API with reactive microservices using Spring Boot, in addition to developing a Twitter clone with the help of a Spring Boot backend. To build on your knowledge further, you’ll also learn how to construct an asynchronous email formatter. By the end of this book, you’ll have a firm foundation in Spring programming and understand how to build powerful, engaging applications in Java using the Spring Boot framework.

Who is this book for?

This book is for competent Spring developers who want to understand how to develop complex yet scalable applications with Spring Boot. You must have a good understanding of Java programming and familiarity with the basics of Spring.

What you will learn

  • Learn the fundamental features of Spring Boot 2.0
  • Customize Spring Boot 2.0 applications
  • Build a basic web application
  • Use Redis to build a taxi-hailing API
  • Create a simple blog management system and a Twitter clone
  • Develop a reactive RESTful web service with Kotlin using Spring Boot

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Jul 30, 2018
Length: 336 pages
Edition : 1st
Language : English
ISBN-13 : 9781789136159
Category :
Languages :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Jul 30, 2018
Length: 336 pages
Edition : 1st
Language : English
ISBN-13 : 9781789136159
Category :
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total NZ$ 242.97
Software Architecture with Spring 5.0
NZ$80.99
Spring Boot 2.0 Projects
NZ$80.99
Mastering Spring Boot 2.0
NZ$80.99
Total NZ$ 242.97 Stars icon
Banner background image

Table of Contents

11 Chapters
Introduction Chevron down icon Chevron up icon
Building a Basic Web Application Chevron down icon Chevron up icon
Building a Simple Blog Management System Chevron down icon Chevron up icon
Introduction to Kotlin Chevron down icon Chevron up icon
Building a Reactive Movie Rating API Using Kotlin Chevron down icon Chevron up icon
Building an API with Reactive Microservices Chevron down icon Chevron up icon
Building a Twitter Clone with Spring Boot Chevron down icon Chevron up icon
Introducing Spring Boot 2.0 Asynchronous Chevron down icon Chevron up icon
Building an Asynchronous Email Formatter Chevron down icon Chevron up icon
Assessments Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
(2 Ratings)
5 star 0%
4 star 100%
3 star 0%
2 star 0%
1 star 0%
Jan Galat Apr 07, 2024
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
The book provides exactly what was advertised. Solid purchase.
Feefo Verified review Feefo
Dowlath Apr 15, 2019
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
i have this book extra copy if anybody want please reach me.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.